解题思路:分成两部分,更容易理解,采用两个函数,更直观。
注意事项:比较有技巧的是输出是的顺序,所以在循环时就改变了顺序。
参考代码:
#include<stdio.h>
#include<math.h>
int sun(int m) //求每一位的阶乘;
{
if (m==0)
return 1;
else
return sun(m-1)*m;
}
int fun(int n) //求每一个数的阶乘和;
{
int s = 0;
int t;
while (n)
{
t = sun(n%10);
s+=t;
n/=10;
}
return s;
}
int main()
{
int i,j,k,n;
int s ,a;
for (i=1;i<=9;i++) //改变循环顺序,按照1、2、3、的顺序输出:
{
for (j=0;j<5;j++)
{
n = i*pow(10,j);
for (k=0;k<pow(10,j);k++)
{
a = n+ k;
if (a==fun(a))
printf("%d ",a);
}
}
}
return 0;
}
0.0分
0 人评分
【出圈】 (C语言代码)浏览:590 |
人见人爱A+B (C语言代码)浏览:664 |
C语言考试练习题_排列 (C语言代码)浏览:767 |
C语言程序设计教程(第三版)课后习题11.8 (C语言代码)浏览:910 |
简单的a+b (C语言代码)浏览:572 |
钟神赛车 (C语言代码)浏览:665 |
Pascal三角 (C语言代码)浏览:707 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:536 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:487 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:631 |