水仙花数指的是一个n位数(n>=3),他的每一个位上的数字的n次幂之和等于他的本身,求出所有的三位数的水仙花数。
方法一:
先遍历100~999然后拆出每一个数的个位、十位、百位,最后求三次幂之和是否为此数
#include<stdio.h>
#include<math.h>int main()
{int i, a, b, c;for (i = 100; i <= 999; i++){a = i % 10;//取个位数字b = i / 10 % 10;//取十位数字c = i / 100;//取百位数字if (pow(a, 3) + pow(b, 3) + pow(c, 3) == i)printf("%d ", i);}return 0;
}
方法二:利用三个循环
#include<stdio.h>
#include<math.h>int main()
{int i, a, b, c;for(a=1;a<=9;a++){for (b = 0; b <= 9; b++){for (c = 0; c <= 9; c++){i = a * 100 + b * 10 + c;if (pow(a, 3) + pow(b, 3) + pow(c, 3) == i)printf("%d ", i);}}}return 0;
}
运算结果: