题解 | #水仙花数#

水仙花数

https://www.nowcoder.com/practice/dc943274e8254a9eb074298fb2084703

#include<stdio.h>
int main()
{
    int m,n,i,j,a,b=0,d=0;//只要是累加,则初始值为0,不然会被随机分配值,累加就没有意义了
    while(scanf("%d %d\n",&m,&n)!=EOF)//多组输入标配,只要有输入,scanf()就不等于EOF,就循环
    {
        for(i=m;i<=n;i++)//从m到n开始依次进循环判断是否为水仙花数
        {
            j=i;//为了不破坏i,j为替身
            while(j>0)
            {
                a=j%10;//取个位位数上的数
                j=j/10;//位数左移,原先的十位变为个位,因为整数相除结果只保留整数部分,而原来的个位变成了结果的小数部分被直接遗弃了
                b=b+a*a*a;//个位位数上的数立方累加
            }
            if(b==i)//位数立法累加等于该数本身则为水仙花数
            {
                printf("%d ",i);//输出水仙花数
                d=1;//有水仙花数d就为1
            }
            b=0;//每判断完一个数就要清除b,进行归零操作
        }
        if(d==0)//说明没有一个水仙花
        {
            printf("no");//结果输出no
        }
    }
    return 0;
}

全部评论

相关推荐

勤奋努力的椰子这就开摆:美团骑手在美团工作没毛病
投递美团等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务