输出水仙花数,输入一个正整数n,输出所有的n位水仙花数
时间: 2024-10-29 19:09:42 浏览: 49
水仙花数是指一个 n 位正整数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身;用熟悉的语言实现一个函数sxhs
输出n位水仙花数是指一个三位数,其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。
为了编写程序找出所有n位的水仙花数,可以遍历从100到(9 * 10^(n - 1))范围内的所有整数,然后计算每一位数字的立方和,如果相等则记录下来。以下是Python的一个简单示例:
```python
def is_armstrong_number(num, n):
digits = [int(d) for d in str(num)]
sum_of_cubes = sum([d ** n for d in digits])
return num == sum_of_cubes
def find_n_digit_armstrong_numbers(n):
start = 10**(n - 1)
end = (10**n) - 1
armstrongs = []
for num in range(start, end + 1):
if is_armstrong_number(num, n):
armstrongs.append(num)
return armstrongs
n = int(input("请输入一个正整数n: "))
armstrong_nums = find_n_digit_armstrong_numbers(n)
print(f"n={n}位的水仙花数有:")
for num in armstrong_nums:
print(num)
阅读全文