解题思路:水仙花数只能是三位数,所以先分别求出百位,十位,个位三个数字,再分别求出它们的立方,最后相加和原数字相比较就行,利用for循环从100到1000逐个检查即可
注意事项:三个数字的立方和可能会很大,所以可能要用double类型的数字储存它
参考代码:
#include<stdio.h>
#include<math.h>
int main()
{
for (int i = 100; i < 1000; i++)
{
int a = i / 100;
int b = i / 10 % 10;
int c = i % 10;
double num = pow(a, 3) + pow(b, 3) + pow(c, 3);
if (i == num)
{
printf("%d\n", i);
}
}
return 0;
}
0.0分
1 人评分