1.题目要求
计算并打印出所有的“水仙花数”(100到999之间)。水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。对于本题来说,n=3,即它寻找的是三位数中,每个位上的数字的三次幂之和等于该数本身的数。
2.代码实现
写法1
#include<stdio.h>
int main()
{
int i,a,b,c;
for(i=100;i<=999;i++)
{
a=i/100;
b=i/10%10;
c=i%10;
if(i==a*a*a+b*b*b+c*c*c)
printf("%d\n",i);
}
return 0;
}
写法2
#include<stdio.h>
int main()
{
int a,b,c,i;
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(i==a*a*a+b*b*b+c*c*c)
printf("%d\n",i);
}
return 0;
}