HDU 2212 DFS
2015-01-26 09:41
357 查看
DFS
Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5671 Accepted Submission(s): 3503
[align=left]Problem Description[/align]
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.
[align=left]Input[/align]
no input
[align=left]Output[/align]
Output all the DFS number in increasing order.
[align=left]Sample Output[/align]
1
2
......
[align=left]Author[/align]
zjt
看这个题目真把我吓尿了,以为果断要超时的。没想到其实就4个数满足条件。上个代码、
#include <stdio.h> int jieceng(int a) { int s,i; s=1; for(i=2;i<=a;i++) s*=i; return s; } int weishu(int a) { int sum=0; int b; b=a; while(a) { sum+=jieceng(a%10); a/=10; } if(sum==b) return 1; return 0; //上面都是预处理。 } int main() { int n,i; for(i=1;i<=40585;i++) //可以先用for(i=1;;i++)这个枚举来确定所有满足的数,然后控制区间长度。一共就四个数1,2,145,40585. { if(weishu(i)) printf("%d\n",i); } } // 其实一行代码就能AC 了。 printf("1\n2\n145\n40585\n");
相关文章推荐
- HDOJ(HDU) 2212 DFS(阶乘相关、)
- HDU--2212 DFS【水题】
- hdu 2212 dfs 简单的思维问题
- HDU 2212 DFS(打表)
- HDU 2212 DFS 水题
- HDU 2212 DFS
- HDU 2212 DFS (伪·DFS)
- HDU 2212 DFS(水题)
- hdu DFS 2212
- HDU 2212 DFS
- hdu 2212: DFS
- hdu 2212 DFS
- HDU-2212 DFS
- hdu 2212 DFS
- hdu-2212 DFS
- HDU 2212 DFS
- HDU 2212 DFS
- Hdu 2212 DFS
- HDU 2212 DFS
- hdu 2212 DFS