解题思路:

题目我们可以分成3部分看,1.各个位上数字的求解   2.各个位上数阶乘的求和     3.输出符合要求的数据

我建议采用函数调用即将阶乘的求解写成一个函数,有助于程序的模块化与可读性;



注意事项:





参考代码:

#include<stdio.h>

int main()

{

int fn(int x);

int a,b,s=0,c;

for(a=1;a<=100000;a++)

{

b=a;注意a值的保存

while(a>0)

{

c=a%10;

s=s+fn(c);函数调用

a/=10;

}

if(b==s)判断是否符合题目要求

{

printf("%d ",b);

}

}

return 0;

}

int fn(int x)阶乘函数声明

{

int d,e=1;

for(d=1;d<=x;d++)

{

e=e*d;

}

return e;

}


点赞(1)
 

0.0分

2 人评分

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

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

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

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

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

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

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

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

评论列表 共有 4 条评论

Sapphire 2年前 回复TA
@软件二班谭豪 确实,我也不知道问题出在哪里
软件二班谭豪 3年前 回复TA
你这个好像有问题,和我的一样,但我不知道哪里出了问题
南上北下 4年前 回复TA
没有按照字典序来输出
葡萄 4年前 回复TA
楼主,为什么输出一直是1啊?