您的位置:首页 > 其它

hdu 2212 DFS

2012-02-04 15:28 218 查看

DFS

Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 2325 Accepted Submission(s): 1395



[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
......《1》#include <stdio.h>   int main()   {       printf("1\n2\n145\n40585\n");       return 0;   }《2》#include<iostream>
using namespace std;
int fac(int n);
int main()
{
int i,j,n,m,t,f;
for(i=1;i<=40585;i++)
{
t=i; f=0;
while(t)
{
n=t%10;
m=t/10;
t=m;
f+=fac(n);
}
if(f==i) cout<<i<<endl;
}

}
int fac(int n)
{
int i,ans=1;
for(i=1;i<=n;i++)
ans*=i;
return ans;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: