• 二十一:拓展水仙花


    问题 : 拓展水仙花
    题目描述

    有一种数字叫:水仙花数。比如:153是一个非常特殊的数,它等于它的每位数字的立方和,即153=1*1*1+5*5*5+3*3*3。 
    现在,有一种拓展的水仙花数。 
    不仅仅是每位数每位数字的3次方和了,如果这个数字总共有N位的话,则是“每位数字的N次方和”。 
    eg:54748=5*5*5*5*5+4*4*4*4*4+7*7*7*7*7+8*8*8*8*8+4*4*4*4*4
    现在要给你一个数X。需要你给出在所有X位数中,存在的拓展水仙花数分别是什么。从小到大输出。
    输入
    一个数字X表示位数(x<=6)。
    输出
    X位数中哪些是拓展水仙花数。从小到大,每行一个
    样例输入
    4
    样例输出
    1634
    8208

    9474

    方法一:

     1 #include<stdio.h>
     2 #define fr(i,n,m) for(i=n;i<m;i++)
     3 int fun(int n,int m){
     4     int sum=1;
     5     for(int j=0;j<n;j++){
     6         sum*=m;
     7     }
     8     return sum;
     9 }
    10 int main(){
    11     int n,a,b,i;
    12     int k,sum,p;
    13     scanf("%d",&n);
    14     switch(n){
    15         case 1:a=1,b=10;break;
    16         case 2:a=10,b=100;break;
    17         case 3:a=100,b=1000;break;
    18         case 4:a=1000,b=10000;break;
    19         case 5:a=10000,b=100000;break;
    20         case 6:a=100000,b=1000000;break;
    21     }
    22     fr(i,a,b){
    23         k=a;
    24         p=i;
    25         sum=0;
    26         while(k){
    27             sum+=fun(n,p/k);
    28             p=p%k;
    29             k=k/10;
    30         }
    31         if(sum==i){
    32             printf("%d
    ",i);
    33         }
    34     }
    35 
    36 }

    方法二:

     1 #include<stdio.h>
     2 #include<math.h>
     3 int fun(int n,int m){
     4     int sum=1;
     5     for(int j=0;j<n;j++){
     6         sum*=m;
     7     }
     8     return sum;
     9 }
    10 int main(){
    11     int a,b,n,sum,p;
    12     scanf("%d",&n);
    13     for(int i=pow(10,n-1);i<pow(10,n);i++){
    14         a=pow(10,n-1);
    15         p=i;
    16         sum=0;
    17         while(a){
    18             sum+=fun(n,p/a);
    19             p=p%a;
    20             a=a/10;
    21         }
    22         if(sum==i){
    23             printf("%d
    ",i);
    24         }
    25     }
    26     
    27 } 
  • 相关阅读:
    PowerDesigner使用教程(一)
    为自己的博客园增加打赏功能[只需五步]
    [Python自学] DRF (4) (权限组件和频率组件)
    [Python自学] DRF (3) (认证组件)
    [Python自学] DRF (2) (视图类的封装)
    [踩坑] Django "OverflowError: Python int too large to convert to C long" 错误
    [Python自学] DRF (1)
    [Python自学] 设计模式之单例模式
    [Python自学] Django的admin组件
    [Python自学] Django的认证系统
  • 原文地址:https://www.cnblogs.com/yuming226/p/8150870.html
Copyright © 2020-2023  润新知