C趣味程序(二)(04)求三位阶乘和数 |
|
www.nanhushi.com 佚名 不详 |
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,然后作条件判别。 #include<stdio.h> long 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
|
|
|
文章录入:杜斌 责任编辑:杜斌 |
|
上一篇文章: C趣味程序(二)(04)求所有阶乘和数 下一篇文章: C趣味程序(二)(05)立方和不等式 |
【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|
|