水仙花数指的是一个n位数(n>=3),他的每一个位上的数字的n次幂之和等于他的本身,求出所有的三位数的水仙花数。
方法一:
先遍历100~999然后拆出每一个数的个位、十位、百位,最后求三次幂之和是否为此数
#include#include 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#include 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; }
运算结果:



