代码
注
:水仙花数,即一个三位数,满足其各位数字立方之和等于该数本身。
关键点:如何分离一个三位数的个位、十位、百位?
可以以数字123为例:
123%10=3,3即为123的个位数;
123/100=1,1即为123的百位数;
(123-1*100-3)/10=2,2即为123的十位数。如此即可。
//求100到999之内的水仙花数
#include <stdio.h>
#define N 999
int main()
{
int a,b,c,i;
for(i=100;i<=N;i++)
{
a=i%10;//分离个位数字a
b=i/100;//分离百位数字b
c=(i-b*100-a)/10; //分离十位数字c
if((a*a*a + b*b*b + c*c*c)==i)
printf("%d\n",i);
}
return 0;
}