使用python编写函数求100~999之间的所有水仙花数

题目描述

编写函数求100~999之间的所有水仙花数。所谓水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身。

输出要求:n个数,n为100~999之间的所有水仙花数的个数,数字之间用空格隔开

案例代码

你可以使用以下 Python 代码来计算 100~999 之间的所有水仙花数,并输出它们的个数以及每个水仙花数:

def is_armstrong(num):
    # 计算数字的位数
    num_str = str(num)
    num_digits = len(num_str)
    
    # 计算每个位上的数字的 num_digits 次方之和
    armstrong_sum = sum(int(digit) ** num_digits for digit in num_str)
    
    # 判断是否为水仙花数
    return armstrong_sum == num

def find_armstrong_numbers():
    armstrong_numbers = []
    for num in range(100, 1000):
        if is_armstrong(num):
            armstrong_numbers.append(num)
    return armstrong_numbers

# 调用函数找到所有水仙花数
armstrong_numbers = find_armstrong_numbers()

# 输出水仙花数的个数
print(len(armstrong_numbers), end=' ')

# 输出每个水仙花数
for num in armstrong_numbers:
    print(num, end=' ')

这段代码首先定义了一个 is_armstrong() 函数,用于判断一个数字是否为水仙花数。然后定义了 find_armstrong_numbers() 函数来找出 100~999 之间的所有水仙花数,并将它们存储在列表 armstrong_numbers 中。最后,输出水仙花数的个数和每个水仙花数。

© 版权声明
THE END
喜欢就支持一下吧
点赞8赞赏 分享