解题思路:分成两部分,更容易理解,采用两个函数,更直观。
注意事项:比较有技巧的是输出是的顺序,所以在循环时就改变了顺序。
参考代码:
#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语言代码)浏览:1525 |
C语言程序设计教程(第三版)课后习题12.2 (C语言代码)浏览:809 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:569 |
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:525 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:479 |
九宫重排 (C++代码)浏览:2160 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:551 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:572 |
Pascal三角 (C语言代码)浏览:1188 |
计算质因子 (C++代码)浏览:1641 |