水仙花数
首先我们先说一下什么是水仙花数:
水仙花数是一个三位数其各位数字的立方和等于该数本身。
例如:3^3 + 7^3+ 0^3 = 370
代码:
这个是100到1000的秋水鲜花代码
#include
int main()
{
int a,b,c,sum;
printf("100到1000的秋水仙花:");
for(int i=100;i<=999;i++){
a=i/100; //求百位数
b=i%100/10; //求十位数
c=i%10; //求个位数
sum=a*a*a+b*b*b+c*c*c;
if(sum==i)printf("%4d",i);
}
return 0;
}
这个是1到n的秋水鲜花代码:
#include
int main()
{
int a,b,sum;
int i=0,n;
scanf("%d",&n);
printf("0到%d的秋水仙花:",n);
while(i
a=i;
sum=0;
do
{
b=a;
a=a/10;
b%=10;
sum+=b*b*b;
}while(a!=0);
if(sum==i)printf("%4d",i);
i++;
}
return 0;
}
首先b是求最后一位数的值,而a是每次都去掉最后一位数的值。
因为a是int整形,所以a/10一定还是整数,比如int(5.4)会变成5
循环控制条件是:当a不等0的时候就继续执行。
比如155,b就等于5,a就负责把5去掉
模仿运行:
i=155,a=155,b=5,a=15,sum=25
b=5,a=1,sum=50
b=1,a=0,sum=51
结束
---------------------------------------------------------------------
想了解更多,可以关注公众号"程序员快速修炼"