根据“水仙花数”的定义,判断一个数是否为“水仙花数”,最重要的是要把给出的三位数的个位、十位、百位分别拆分,并求其立方和(设为s),若s与给出的三位数相等, 三位数为“水仙花数”,反之,则不是。
#include <stdio.h>
int main()
{ //根据“水仙花数”的定义,判断一个数是否为“水仙花数”,最重要的是要把给出的三位数的个位、十位、百位分别拆分,
//并求其立方和(设为s),若s与给出的三位数相等, 三位数为“水仙花数”,反之,则不是。
int hun ,ten ,ge ,n;
printf("100-999的水仙花数:");
for (n=100;n<1000;n++)
{
hun=n/100;//将n整除以100,得出n在百位上的数字hun
ten=n/10%10;//将n先整除以10再对10求模n/10%10),得出n在十位上的数字ten
ge=n%10;//将n对10取余,得出n在个位上的数字ge
if(n==hun*hun*hun+ten*ten*ten+ge*ge*ge)
//得这三个数字的立方和是否与其本身相等,若相等,则该数为水仙花数
printf("%d ",n);
}
printf("\n");
return 0;
}