4-1. 水仙花数

作者: kylelin | 来源:发表于2014-06-26 17:37 被阅读655次

    水仙花数是指一个N位正整数(N>=3),它的每个位上的数字的N次幂之和等于它本身。例 如:153 = 13 + 53+ 33。 本题要求编写程序,计算所有N位水仙花数。

    输入格式
    输入在一行中给出一个正整数N(3<=N<=7)。

    输出格式
    按递增顺序输出所有N位水仙花数,每个数字占一行。

    输入样例
    3

    输出样例
    153
    370
    371
    407

    【代码示例】:

    #include<stdio.h>
    #include<math.h>
    
    int main() {
        int n;
        scanf("%d", &n);
        int min = (int) pow(10, (n - 1));
        int max = (int) pow(10, n);
        
        for(int i = min; i < max; i++) {
            int sum = 0;
            int temp = i;
            
            while(temp / 10) {
                sum += (int) pow(temp % 10, n);
                temp = temp / 10;
            }
            sum += (int) pow(temp % 10, n);
            
            if(sum == i) {
                printf("%d\n", i);
            }
        }
    }
    

    相关文章

      网友评论

      • 9359e1446e23:#include<stdio.h>
        #include<math.h>
        void main()
        {
        int n;
        for(n=100;n<=999;n++)
        {
        if(n==pow(n/100,3)+pow(n/10%10,3)+pow(n%100,3)
        printf("n=%d\n",n);
        }
        }

        这样简单一点的代码跟上面相比会不会结构不完善有弊端?
      • 也很无奈:11行有错误怎么改?
      • 胖一一:程序能多写点注释,就更完美了。当时我考全国计算机等级考试的时候,也遇到过这题,当时可被难倒了。程序还是要多学多练才行,练多了,我就在我个人知乎zhihu.com/people/520WX 以及我的博客http://blog.csdn.net/kelehaier分享了我自己在C编程中总结的经验、教训、困难,有很多是教材上不会讲的,希望给学习C语言的朋友有帮助。
      • 2a6b95286690:求带啊大神
        😇😇
        9359e1446e23:@弋水寒 计算机专业吗?
      • eth10:如果尽量多点注释就好了😃😃😃

      本文标题:4-1. 水仙花数

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