使用python语言输出水仙花数,详细解答
作者:野牛程序员:2023-06-20 17:26:46python阅读 2656
当我们谈论水仙花数时,我们指的是一个n位数,它的每个位上的数字的n次幂之和等于它本身。例如,3位数的水仙花数是153,因为1^3 + 5^3 + 3^3 = 153。
下面是使用Python语言输出水仙花数的代码:
def is_armstrong_number(number): # 将数字转换为字符串,以便可以迭代每个数字 str_number = str(number) # 获取数字的位数 num_digits = len(str_number) # 计算每个数字的n次幂之和 sum_of_digits = sum(int(digit)**num_digits for digit in str_number) # 检查是否是水仙花数 if sum_of_digits == number: return True else: return False # 获取用户输入的位数 num_digits = int(input("请输入位数:")) # 找到所有的水仙花数并输出 print(f"{num_digits}位数的水仙花数有:") for number in range(10**(num_digits-1), 10**num_digits): if is_armstrong_number(number): print(number)
这段代码首先定义了一个名为is_armstrong_number()
的函数,它接受一个整数作为参数,并检查该数字是否是水仙花数。然后,代码通过用户输入确定位数,并使用循环遍历从最小的n位数到最大的n位数范围内的所有数字。对于每个数字,它调用is_armstrong_number()
函数来检查是否是水仙花数,如果是,则将其打印出来。
你可以运行这段代码,并在提示输入位数时输入一个正整数,然后它将输出该位数范围内的所有水仙花数。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:使用C++输出水仙花数,详细解答
- 下一篇:详细讲舵机