Problem Description
写一个程序,该程序的功能是输出100到999之间的所有水仙花数。水仙花数的特点是:它的每个位上的数字的三次幂之和等于它本身。
例如:371 = 3 ^ 3 + 7 ^ 3 + 1 ^ 3,因此371是水仙花数。
代码实现(C)
#include <stdio.h>
#include <math.h>
int main() {
for (int i = 100; i < 1000; ++i) {
int a = i % 10; // 个位
int b = i / 10 % 10; // 十位
int c = i / 100 % 10; // 百位
// 分别取三次幂求和
int sum = (int) (pow(a, 3) + pow(b, 3) + pow(c, 3));
// 判断是否为水仙花数
if (sum == i)
printf("%d\n", i);
}
return 0;
}
运行结果
153
370
371
407