7. 输出三位数的水仙花数。“水仙花数”是指一个三位数,其各位数字立方和等于该数本身
时间: 2025-02-23 16:31:36 浏览: 62
"水仙花数"( narcissistic number 或 pluperfect digital invariant),是指一个三位正整数,其各位数字的三次方之和等于该数自身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。寻找水仙花数需要编写一些简单的程序,遍历从100到999的所有三位数,计算每个数各位数字的立方和,并检查是否等于原数。
以下是判断一个数是否为水仙花数的一个简单示例算法:
```python
def is_narcissistic_number(n):
# 将数字转换为字符串以便获取每一位数字
digits_str = str(n)
# 检查长度是否为3
if len(digits_str) != 3:
return False
# 分割数字并计算每一位的立方和
sum_of_cubes = sum(int(digit)**3 for digit in digits_str)
# 如果立方和等于原数,返回True,否则False
return sum_of_cubes == n
# 测试范围内的水仙花数查找
for num in range(100, 1000):
if is_narcissistic_number(num):
print(num)
相关问题
6. 输出所有的“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
水仙花数可以用以下 Python 代码输出:
```python
for i in range(100, 1000):
num = i
sum = 0
while num > 0:
digit = num % 10
sum += digit ** 3
num //= 10
if i == sum:
print(i)
```
输出结果为:
```
153
370
371
407
```
以上四个数就是所有的水仙花数。
用2.输出所有的“水仙花数”。所谓“水仙花数”,是指一个三位数,其各位数字的立方和等于该数本身。例如,153是“水仙花数”,因为
1³ + 5³ + 3³ = 153。以下是代码实现:
```
#include <stdio.h>
int main() {
int i, j, k;
printf("水仙花数有:\n");
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);
}
}
}
}
return 0;
}
```
输出结果:
```
水仙花数有:
1
153
370
371
407
```
阅读全文
相关推荐
















