解题思路:

注意事项:

参考代码:

int jie(int i){
    int j,n=1;
    if(i==0||i==1)return 1;////注意:0的阶乘是1,这个知识点忘了的话就无法输出40585了!
    else{
        for(j=1;j<=i;j++){
            n*=j;
            }
        return n;
    }

}
int main(){
    int jie(int i);
    int n1,k,sum1,t,temp;
    //1;[10,20);[100,200);[1000,2000);[10000,20000)
    for(n1=0;n1<5;n1++){
        t=pow(10,n1);
        for(k=t;k<2*t;k++){
            temp=k;
            sum1=0;
            while(temp!=0){
                sum1+=jie(temp%10);
                temp=temp/10;
            }
            if(sum1==k){
                printf("%d ",k);
            }
        }
    }
        //2;[20,30);[200,300);[2000,3000);[20000,30000)
    for(n1=0;n1<5;n1++){
        t=pow(10,n1);
        for(k=2*t;k<3*t;k++){
            temp=k;
            sum1=0;
            while(temp!=0){
                sum1+=jie(temp%10);
                temp=temp/10;
            }
            if(sum1==k){
                printf("%d ",k);
            }
        }
    }
            //3;[30,40);[300,400);[3000,4000);[30000,40000)
        for(n1=0;n1<5;n1++){
        t=pow(10,n1);
        for(k=t*3;k<4*t;k++){
            temp=k;
            sum1=0;
            while(temp!=0){
                sum1+=jie(temp%10);
                temp=temp/10;
            }
            if(sum1==k){
                printf("%d ",k);
            }
        }
    }
            //4;[40,50);[400,500);[4000,5000);[40000,50000)
        for(n1=0;n1<5;n1++){
        t=pow(10,n1);
        for(k=t*4;k<t*5;k++){
            temp=k;
            sum1=0;
            while(temp!=0){
                sum1+=jie(temp%10);
                temp=temp/10;
            }
            if(sum1==k){
                printf("%d",k);
            }
        }
    }
return 0;
}


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论