求100-999的所有水仙花数。 水仙花数:其各位数字立方和等于该数字本身 如: 分析:从列表中取出一个数,分离出个位x,十位y,百位z,再求各位上的立方,看是否符合水仙花数;
时间: 2024-05-09 20:17:19 浏览: 20
水仙花数即为三位数中符合上述条件的数。
代码实现:
```python
for i in range(100, 1000):
x = i % 10
y = (i // 10) % 10
z = i // 100
if i == x ** 3 + y ** 3 + z ** 3:
print(i)
```
输出结果:
```
153
370
371
407
```
相关问题
求出所有的水仙花数。提示:所谓水仙花数是指一个三位数,其各位数字的立方和等于该数字本身
水仙花数是指一个三位正整数,它的每个位上的数字分别立方后相加得到的结果正好等于原数本身。例如,153是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。
求解水仙花数可以编写一个简单的程序,遍历100到999范围内的所有数字,计算每个数字的百位、十位和个位立方和,如果结果等于原数,则返回这个数。以下是Python的一个示例:
```python
def is_armstrong_number(n):
# 将数字转换为字符串,便于处理每一位
str_n = str(n)
# 计算每位数字的立方和
sum_of_cubes = sum(int(digit) ** 3 for digit in str_n)
# 如果和等于原数,返回True,否则返回False
return n == sum_of_cubes
# 遍历查找水仙花数
armstrong_numbers = [n for n in range(100, 1000) if is_armstrong_number(n)]
print("水仙花数有:", armstrong_numbers)
c语言输出100-999中所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身的流程图
以下是C语言输出100-999中所有的“水仙花数”的流程图:
```flow
st=>start: 开始
op1=>operation: 从100到999循环
op2=>operation: 取出当前数的百位、十位、个位
op3=>operation: 计算当前数的各位数字立方和
cond=>condition: 判断各位数字立方和是否等于当前数
op4=>operation: 输出当前数
e=>end: 结束
st->op1->op2->op3->cond
cond(yes)->op4->op1
cond(no)->op1
```
C语言代码如下:
```c
#include <stdio.h>
#include <math.h>
int main() {
int i, j, k, num;
for (int a = 100; a < 1000; a++) {
i = a / 100;
j = a % 100 / 10;
k = a % 100 % 10;
num = pow(i, 3) + pow(j, 3) + pow(k, 3);
if (num == a) {
printf("%d\n", a);
}
}
return 0;
}
```
阅读全文