一、神秘的三位数
有这样一个3位数,组成它的3个数字阶乘之和正好等于它本身,即:abc = a! + b! + c!。下面的程序用于搜索这样的3位数。请补全缺失的代码。
int JC[] = {1,1,2,6,24,120,720,5040,40320,362880};
int i;
for(i=100; i<1000; i++)
{
int sum = 0;
int x = i;
while(__________)
{
sum += JC[x%10];
x /= 10;
}
if(i==sum) printf("%d\n", i);
}
答案 x > 0
本题比较简单,但是本题有很多值得学习的地方,比如题中开了个数组储存0~9的阶乘,省去了每次分解位数时算阶乘的时间。牺牲一小部分空间,节省了大量的时间。