一个正整数如果等于组成它的各位数字的阶乘之和,该正整数称为阶乘和数。
1.说明:
试求三位阶乘和数,进而求出所有的阶乘和数。
2.程序设计:
(1).求三位阶乘和数:abc=a!+b!+c!,其中a为百位数字hundred(a!=0),b为十位数字ten,c为个位数字one。约定0!=1
由于7!=5040>999的,因此a、b、c都必定小于7.
方案一:
#include<stdio.h>
long jc(int n); /*自定义函数说明*/
void main()
{
int hundred,ten,one,m,n;
printf("三位阶乘和数有:");
for(hundred=1;hundred<=6;hundred++)
for(ten=0;ten<=6;ten++)
for(one=0;one<=6;one++)
{
m=hundred*100+ten*10+one;
n=jc(hundred)+jc(ten)+jc(one);
if(m==n) /*阶乘和条件判别*/
printf("%d\n",n);
}
getch();
}
long jc(int n)
{
int i;
long s=1;
for(i=1;i<=n;i++)
s*=i;
return(s);
}