python的水仙花数判断

img

img


python水仙花数判断
请问为什么这个循环中370会重复出现

370的时候,计算3和7的立方和与3、7、0的立方和是一样的,你的if判断在循环中,就会重复输出370。应该先算出3位数的立方和后在判断。
参考代码:

# 获取用户输入的范围
start = int(input("请输入起始数:"))
end = int(input("请输入结束数:"))
count = 0
# 遍历范围内的每个数
for num in range(start, end + 1):
    # 将数转换为字符串,以便处理每个位上的数字
    num_str = str(num)
    # 计算每个位上数字的n次方之和
    sum_of_powers = sum([int(digit) ** len(num_str) for digit in num_str])
    # 判断是否是水仙花数
    if num == sum_of_powers:
        count += 1
        print(num)


不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^