当前位置:首页python > 正文

使用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
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击