C语言编程求三位数各位之和,C趣味程序(二)(04)求三位阶乘和数

c921e7204448306583439cc53df1a114.png

1.5 阶乘和数

一个正整数如果等于组成它的各位数字的阶乘之和,该整数称为阶乘和数。

例如,145=1!+4!+5!,则145是一个三位阶详细和数。是否还有其它三位阶乘和数?共有多少个阶乘和数?

1.5.1 求三位阶乘和数

试求出所有三位阶乘和数:m=abc=a!+b!+c!(其中a为百位数字,b为十位数字,c为个位数字。约定0!=1)。

算法分析如下:

通过循环累乘设计一个求阶乘的函数:jc(x)=x!

对任意一个三位数m,分解其百位数字a,十位数字b,个位数字c。条件差判别:若m等于jc(a)+jc(b)+jc(c),则作打印输出。也可通过a,b,c三重循环组合为三位数m=a*100+b*10+c,然后作条件判别。

#includelong jc(int x);

void main()

{

int a,b,c,m,n;

printf("三位阶乘和数有:");

for(a=1;a<=9;a++) /*a,b,c分别为三位数的百位、十位、个位数字*/

for(b=0;b<=9;b++)

for(c=0;c<=9;c++)

{

m=a*100+b*10+c;

n=jc(a)+jc(b)+jc(c); /*阶乘和条件判别*/

if(m==n) printf("%d\n",m);

}

}

long jc(int x)

{

int i;

long p=1;

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

p*=i;

return p;

}

程序运行结果:

三位阶乘和数有:145

注:可见三位阶乘和数只有一个 145

2829f2ca24f0d0090cbba57f30759f23.png

C趣味程序(二)(04)求三位阶乘和数.doc

下载Word文档到电脑,方便收藏和打印[全文共620字]

编辑推荐:

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

下载Word文档

你可能感兴趣的:(C语言编程求三位数各位之和)