请你试编一程序,求出所有的“水仙花数”。 说明:如果一个三位数等于它各个数位上的数字的立方和,那么这个数就是“水仙花数”。 输入描述 无 输出描述 一行,若干个整数,表示所有的“水仙花数”,两数之间以一个空格隔开。c语言
时间: 2024-11-30 16:20:18 浏览: 12
《Java语言程序设计(一)》课后习题答案(课程编号04747)
以下是一个简单的C语言程序,用于寻找并打印所有三位的水仙花数(也称为纳西索斯数)。水仙花数是指一个三位数,其各位数字的立方和等于该数本身。例如,153 是水仙花数,因为它满足 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。
```c
#include <stdio.h>
int main() {
int start = 100; // 遍历最小的三位数
int end = 999; // 遍历最大的三位数
while (start <= end) {
int num = start;
int first_digit = num / 100;
int second_digit = (num % 100) / 10;
int third_digit = num % 10;
// 计算每个位的立方和
int sum_of_cubes = first_digit * first_digit * first_digit +
second_digit * second_digit * second_digit +
third_digit * third_digit * third_digit;
// 判断是否是水仙花数
if (sum_of_cubes == num) {
printf("%d ", num); // 打印找到的水仙花数
}
start++;
}
printf("\n"); // 结束输出后换行
return 0;
}
```
当程序运行时,它会遍历从100到999的所有三位数,并检查它们是否满足水仙花数的条件。如果是,就将它打印出来。
阅读全文