题解 | #水仙花数#

水仙花数

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

#include <stdio.h>
#include <math.h>
//对函数做了优化,因为水仙花数也是自幂数中的一种,该函数能够判断所有自幂数

//自幂数判断
int ziminum(int x)
{
    int tmp = x;
    int n = 1;
    //判断位数
    while(tmp /= 10)
    {
        n++;
    }
    //判断是否是自幂数
    int sum = 0;
    for(tmp = x; tmp; tmp /= 10)
    {
        sum += (int)pow(tmp%10, n);
    }
    //判断返回
    if(sum == x)
        return 1;
    else
        return 0;

}
int main()
{
    int m = 0;
    int n = 0;
    int flag = 1;
    while(scanf("%d%d", &m, &n) != EOF)
    {
        int i = 0;
        for(i=m; i<=n; i++)
        {
            if(ziminum(i))//判断是否是自幂数
            {
                printf("%d ", i);
                flag = 0;
            }
        }
        if(flag == 1)
        {
            printf("no\n");
        }
    }
    return 0;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
05-29 20:12
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-09 12:30
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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