1 2 ......
这道题就是逗你玩呢。。。
分析:9的阶乘为362880, 而且由0~9的阶乘组成的最大数就是3628800,所以搜索一下就好了,结果你会很惊讶。。。
只有1, 2, 145, 40585符合。。。
代码:
#include <stdio.h>
int f[10] = {1, 1};
int a[10];
void ff(){
int i;
for(i = 2; i < 10; i ++) f[i] = f[i-1]*i;
//printf("%d", f[9]);
}
int judge(int n){
int sum1 = n, sum2;
sum2 = 0;
while(n){
int temp = n%10;
sum2 += f[temp];
n/= 10;
}
if(sum1 == sum2) return 1;
return 0;
}
int main(){
ff();
for(int i = 1; i <= 3628800; i ++)
if(judge(i)) printf("%d\n", i);
return 0;
}
原文:http://blog.csdn.net/shengweisong/article/details/41230635