确定数的范围 :首先确定要输出的水仙花数的数值范围,例如0到n之间。遍历寻找:
使用循环遍历这个范围内的所有数。
分离数字:
对于每个数,分离出它的每一位数字。
计算立方和:
计算每一位数字的n次方,并将其相加。
判断是否为水仙花数:
如果计算出的立方和等于原数,则该数为水仙花数,并将其输出。
```c
include
int main() {
int num, digit, sum, temp;
printf("请输入一个整数n:\n");
scanf("%d", &num);
printf("水仙花数为:\n");
for (temp = 0; temp <= num; temp++) {
sum = 0;
digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
if (temp == 0) { // 确保是三位数
printf("%d ", sum);
}
}
return 0;
}
```
代码解释:
输入部分
`printf("请输入一个整数n:\n");`:提示用户输入一个整数。
`scanf("%d", &num);`:读取用户输入的整数。
循环部分
`for (temp = 0; temp <= num; temp++)`:从0遍历到用户输入的整数。
`sum = 0;`:初始化立方和为0。
`digit = temp % 10;`:获取当前数的最后一位数字。
`sum += digit * digit * digit;`:计算该位数字的立方并加到总和中。
`temp /= 10;`:去掉当前数的最后一位数字。
`if (temp == 0) {`:确保是三位数才输出。
输出部分
`printf("%d ", sum);`:输出每个三位数的立方和。
这个程序会输出从0到用户输入的整数之间的所有水仙花数。