zoukankan      html  css  js  c++  java
  • 习题4-6 水仙花数(20 分)

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

    输入格式:

    输入在一行中给出一个正整数N(3N7)。

    输出格式:

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

    输入样例:

    3
    

    输出样例:

    153
    370
    371
    407
    
    #include <stdio.h>
     
     int main()
     {
         int n;
         scanf("%d", &n);
         
         int i, low = 1, high;           //low表示n位数的最小数,high表示n位数的最大数 
         for(i = 1; i < n; i++) 
         {
             low *= 10;
         } 
         high = low * 10; 
         for(i = low; i < high; i++ )
          {        //从最小数到最大数逐一遍历  
             int t = i;
             int sum = 0;
             do {
                 int r = t % 10;          //r为数的末尾数字  
                 t /= 10;
                 int j, b = r;
                 for(j = 1; j < n; j++)
                  {    //让r自乘最后得到r的n次方 
                     r *= b;
                  }
                 sum += r; 
             } while(t > 0);
             if(sum == i)
              {               //让r的n次方和i比较 
                 printf("%d
    ", i);
              }
         }
         return 0;
     }
  • 相关阅读:
    rpm常见命令使用说明
    终端传值给Makefile、Makefile传值给C++代码
    redis实现异步队列
    redis实现分布式锁
    正则表达式
    nginx安装
    metaq
    zeromq
    ActiveMq
    http压力测试
  • 原文地址:https://www.cnblogs.com/2228212230qq/p/9292111.html
Copyright © 2011-2022 走看看