问题: 求出并输出0-999之间的所有”水仙花数”
名词定义: 水仙花数是指一个三位数, 其个位数字的里放歌刚好等于该数本身, 在数论中, 水仙花数也被称为自恋数, 自幂数, 阿姆斯特朗数, 是指一N位数, 其各个数字N次方和等于数. 例如153, 370, 371, 407就是三位数的水仙花数,其各个数字立方和等于该数.
153 = 1^3 + 5^3 + 3^3
370 = 3^3 + 7^3 + 0^3
371 = 3^3 + 7^3 + 1^3
407 = 4^3 + 0^3 + 7^3
代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main() {
int i = 0;
int j = 0;
int k = 0;
printf("水仙花数是:\n");
for (int n = 2; n < 999; n++) {
i = n / 100;
j = n / 10 - i * 10;
k = n % 10;
if (n == pow(i, 3) + pow(j, 3) + pow(k, 3)) {
printf("%d ", n);
}
}
system("pause");
return 0;
}
结果如下: