2011蓝桥杯【初赛试题】神秘的三位数

神秘的三位数

有这样一个3位数,组成它的3个数字阶乘之和正好等于它本身。即:abc = a! + b! + c!

下面的程序用于搜索这样的3位数。请补全缺失的代码。

int JC[] = {1,1,2,6,24,120,720,5040,40320,362880};

//开了一个JC的数组用来存取1至9的阶乘,省去了下面的运算,节省了时间

int i;

for(i=100; i<1000; i++)

{

int sum = 0;

int x = i;

while(x!=0)//补全的代码(把x的所有位全部计算完,也就是x最后一位除以10后就为0了,这个数也就计算完了)

{

sum += JC[x%10];

x /= 10;

}

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

}

你可能感兴趣的:(C++,C语言,ACM,OJ,2011蓝桥杯,初赛试题,神秘的三位数)