美文网首页
水仙花数

水仙花数

作者: 程序员快速修炼 | 来源:发表于2019-01-11 22:13 被阅读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

    结束

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

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

    相关文章

      网友评论

          本文标题:水仙花数

          本文链接:https://www.haomeiwen.com/subject/tubfdqtx.html