yannaj


私信TA

用户名:yannaj

访问量:1184

签 名:

从易到难,仰望星空,脚踏实地

等  级
排  名 7799
经  验 1280
参赛次数 0
文章发表 2
年  龄 0
在职情况 学生
学  校 中南大学
专  业

  自我简介:

TA的其他文章

解题思路: 按各个位计算阶乘和,满足条件的数,根据首位数字,存放到对应的2位数组。

注意事项:

参考代码:

#include<stdio.h>
#include<string.h>
int main(){
    int a1[10][10];
    memset(a1,0,sizeof(a1));
    for(int i=1;i<=100000;i++){
        int n = i,sum=0,a;
        while(n>0){
            a= n%10;
            int b=1;
            for(int i=1;i<=a;i++) //阶乘计算
                b= b*i;
            sum= sum+ b;  
            n=n/10;
        }
        if(sum == i)
        {   
            int j=0;
            while(a1[a][j]>0) j++;  //填到数组对应位置,开头数字是a
            a1[a][j]=i;
        }
            
    }
    for(int i=1;i<=9;i++){
        for(int j=0;a1[i][j]>0;j++){
            printf("%d ",a1[i][j]);
        }
    }
    
    return 0;
}

 

0.0分

0 人评分

  评论区

  • «
  • »