#include<stdio.h>
int main()
{
int a,b,c,d;
d=100;
printf("水仙花数为:\n");
for(d=100;d<=999;d++)
{
int a=d%10;//个位数
int b=(d/10)%10;//十位数
int c=d/100;//百位数
if(d==a*a*a+b*b*b+c*c*c)
printf(" %d ",d);
}
return 0;
}
该题的难点在于如何取得分别取得数字的各个位上的数字;
以123为例;
取个位数 int a=123%10 ------12....3 取余数 a=3;
取十位数 int b= (d/10)%10.-----b=(12)%10=1....2=2;
取百位数 int c=d/100=1.23=1;
输出水仙花数为:153 370 371 407