题解 | #水仙花数#

水仙花数

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

全部评论

相关推荐

昨天 17:22
已编辑
西安交通大学 Java
华为 昇腾 ai软件开发 薪资20k x (14-16),职级13A,5%公积金,c/cpp
BLOOMING7:闭眼滴滴,华子给的又少又累
点赞 评论 收藏
分享
牛客101244697号:这个衣服和发型不去投偶像练习生?
点赞 评论 收藏
分享
11-30 11:07
河南大学 Java
宇宙厂 测开 n*15
丘丘给个offer:有后选后
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务