找出所有的水仙花数,将其保存在列表中,并打印列表
时间: 2023-05-23 22:07:31 浏览: 30
A:以下是Python代码实现
```python
# 计算一个数字的位数
def get_digits(n):
count = 0
while n > 0:
count += 1
n //= 10
return count
# 判断一个数字是否为水仙花数
def is_narcissistic_number(n):
digits = get_digits(n)
sum = 0
temp = n
while temp > 0:
sum += (temp % 10) ** digits
temp //= 10
return sum == n
# 找出所有的水仙花数,并保存在列表中
narcissistic_numbers = []
for i in range(100, 1000):
if is_narcissistic_number(i):
narcissistic_numbers.append(i)
# 打印列表
print(narcissistic_numbers)
```
输出结果为:
```
[153, 370, 371, 407]
```
相关问题
程序输入n,找出所有n位的水仙花数,并放入列表中输出
好的,这是一个简单的Python程序,可以实现你的需求:
```python
n = int(input("请输入n:"))
result = []
for i in range(10**(n-1), 10**n):
sum = 0
temp = i
while temp > 0:
digit = temp % 10
sum += digit ** n
temp //= 10
if sum == i:
result.append(i)
print(result)
```
这个程序会先让你输入n,然后通过循环计算出所有n位的水仙花数,把它们放入一个列表中并输出。注意,这里的n必须大于等于3才会有水仙花数。
用c程序将所有水仙花数打印出来,并打印出总数
可以回答这个问题。以下是一个用 C 语言编写的程序,用于打印所有的水仙花数,并计算它们的总数:
#include <stdio.h>
int main() {
int i, j, k, n = 0;
for (i = 1; i <= 9; i++) {
for (j = 0; j <= 9; j++) {
for (k = 0; k <= 9; k++) {
int num = i * 100 + j * 10 + k;
if (num == i * i * i + j * j * j + k * k * k) {
printf("%d\n", num);
n++;
}
}
}
}
printf("总数:%d\n", n);
return 0;
}