Sol:题目就是145!=1!+4!+5!这样的数有几个。。。范围【1,2147483647】
如果十位数都是9的话这个和也只有3628800.
或者直接打表。。。。
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int maxn = 11;
int a[maxn];
int solve(int n) //算阶乘
{
int sum=1;
for(int i=1;i<=n;i++)
sum*=i;
return sum;
}
int main()
{
a[0]=1;
for(int i=1;i<=9;i++)
a[i]=solve(i);
for(int i=1;i<=3265920;i++)
{
int num=i;
int sum=0;
while(num)
{
int j=num%10;
num/=10;
sum+=a[j];
}
if(i==sum)
printf("%d\n",i);
}
return 0;
}