解题思路:
注意事项:
参考代码:
#include<stdio.h>
int main()
{
int long i = 1, t=1,sum=0;
int s = 1;
int a;
int k = 0;
int b[4];
while (i<=100000)
{
a = t % 10;//取余
for (int j = 1; j <= a; j++)
{
s = s * j;//余数的阶乘
}
sum = sum + s;//累加余数的阶乘
s = 1;//重置为1 为了不影响 下次余数的计算
t = t / 10;
if (t == 0)//当t=0时表明此数各位数的求余已完成 进入判断
{
if (sum == i)//相等即为所求数
{
b[k] = i;
k++;
}
i++;
t = i;
sum = 0;//不影响下个数的余数累加
}
}
printf("%d %d %d %d", b[0], b[2], b[1], b[3]);//此处为投机取巧
return 0;
}
0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复