思路1:枚举即可,因为999999999的最大DFS为9*9!,所以没有必要枚举到最后,如果枚举到最后会TLE
思路2:直接写程序暴力出答案,输出即可
两种思路代码:
#include <bits/stdc++.h>
using namespace std;
int f(int n)
{
int f = 1;
for(int i=1;i<=n;i++)
{
f = f*i;
}
return f;
}
int main()
{
int sum,ans;
for(int i = 1;i < 3265920;i++)
{
sum = 0;
ans = i;
while(ans)
{
sum+=(f(ans%10));
ans/=10;
}
if(sum==i)
{
cout<<i<<endl;
}
}
return 0;
}
#include<stdio.h>
int main()
{
printf("1\n2\n145\n40585\n");
return 0;
}