解题思路:
注意事项:
参考代码:
#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分
3 人评分
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:701 |
震宇大神的杀毒软件 (C++代码)浏览:1175 |
上车人数 (C语言代码)浏览:817 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:541 |
WU-蓝桥杯算法提高VIP-交换Easy (C++代码)浏览:1186 |
本人酷爱递归实现很多问题,这里也是浏览:641 |
DNA (C语言代码)浏览:564 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:541 |
1113题解浏览:825 |
1054题解浏览:516 |