HDU-2212 DFS

来源:互联网 发布:php试题库管理系统 编辑:程序博客网 时间:2024/05/19 14:52

DFS

Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 8889    Accepted Submission(s): 5439


Problem 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.
 

Input
no input
 

Output
Output all the DFS number in increasing order.
 

Sample Output
12......
 

Author
zjt
 

水题

#include <iostream>#include <stdio.h>#include <algorithm>#include <string.h>#include <cmath>#include <string>using namespace std;int f[10];int t[10];int sum;int tmp;void init(){    t[0]=1;    for(int i=1;i<=9;i++){        t[i]=t[i-1]*i;    }}void fun(int n){    sum=0;    tmp=n;    while(tmp){        sum+=t[tmp%10];        tmp/=10;    }    if(sum==n){        cout<<n<<endl;    }}int main(){    init();    for(int i=1;i<=10*t[9];i++){        fun(i);    }    return 0;}


结果如下:

1214540585



原创粉丝点击