所谓的"水仙花数"是指一个三位数,其各位数字立方和等于其本身。
例如: 153=(1*1*1)+(5*5*5)+(3*3*3)
第一步:我们知道"水仙花数"是一个三位数,说明"水仙花数"的范围是100~999
第二步:表示出个位数,十位数和百位数
第三步:判断各位数立方和是否等于该数本身
第四步:如果是都打印出来
进入代码部分:
#include <stdio.h>
int main()
{
int x=0,y=0,z=0,i=0,count=0; //定义三个变量,分别表示个位,十位,百位,
//count是计数器算有多少个"水仙花数"
for(i=100; i<1000; i++)//范围是100~999, 这一步的判断条件也可以改为i<=999
{
x=i%10; //表示个位数,例如:153%10=3
y=i/10%10; //表示十位数 153/10%10=5
z=i/100%10; //表示百位数 153/100%10=1
if((x*x*x)+(y*y*y)+(z*z*z)==i)
{
printf("%d是水仙花数\n",i);
count++;
}
}
printf("总共有%d个水仙花数\n",count);
return 0;
}
运输结果:
![](https://img-blog.csdnimg.cn/img_convert/9c8b34d974742bff7b82bc7d257ed98e.png)