题解 | #水仙花数#

水仙花数

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;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-02 18:35
简历上把1个月实习写成了3个月,会进行背调吗?
码农索隆:一个月有一个月的实习经历,三个月有三个月的实习经历
简历当中有水分算不算造假...
点赞 评论 收藏
分享
点赞 评论 收藏
分享
MinJerous:虽然我一直说 计算机不怎么卡学历 但是至少得一本
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-04 18:25
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务