水仙花数

2019-01-11  本文已影响0人  程序员快速修炼

首先我们先说一下什么是水仙花数:

水仙花数是一个三位数其各位数字的立方和等于该数本身。

例如: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

结束

---------------------------------------------------------------------

想了解更多,可以关注公众号"程序员快速修炼"

上一篇下一篇

猜你喜欢

热点阅读