hdu 2212 DFS

来源:互联网 发布:淘宝客计划管理设置 编辑:程序博客网 时间:2024/05/17 00:31

DFS

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


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<stdio.h>#include<string.h>int dfs(int n){if(n==0 || n==1) return 1; else return n*dfs(n-1);}int main(){int i;for(i=1;i<50000;i++){int a=i,c,sum=0,ok=0;while(a){c=a%10;sum+=dfs(c);a/=10;if(sum>i){ok=1;break;}}if(!ok && sum==i)printf("%d\n",i);}return 0;}


0 0
原创粉丝点击