Description
A DFS(digital factorial sum) number is found by summing the factorial of every digit of a positive integer.
For example ,consider the positive integer 145 = 1!+4!+5!, so it's a DFS number.
Now you should find out all the DFS numbers in the range of int( [1, 2147483647] ).
There is no input for this problem. Output all the DFS numbers in increasing order. The first 2 lines of the output are shown below.
For example ,consider the positive integer 145 = 1!+4!+5!, so it's a DFS number.
Now you should find out all the DFS numbers in the range of int( [1, 2147483647] ).
There is no input for this problem. Output all the DFS numbers in increasing order. The first 2 lines of the output are shown below.
Input
no input
Output
Output all the DFS number in increasing order.
Sample Input
Sample Output
1
2
......
2
......
Tips
DFS(9999999)=2540160,再大位数就不同,必然不相等
AC Code
#include <iostream>
#include <string>
#include <string.h>
#include <algorithm>
#include <math.h>
using namespace std;
#define inf 0x3f3f3f3f
int jc[10];
long long pd(long long n)
{
long long sum=0;
while(n!=0)
{
sum+=jc[n%10];
n/=10;
}
return sum;
}
int main(int argc, char** argv) {
long long i,j;
jc[0]=1;
for(i=1;i<=9;i++)
jc[i]=i*jc[i-1];
for(i=1;i<=2540160;i++)
if(i==pd(i)) cout<<i<<endl;
return 0;
}