hdu 2212

DFS

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


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
1 2 ......
 

 

Author
zjt
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<algorithm>
#include<cstdlib>
using namespace std;
int tt,n,m;
int main()
{
      int ans;
      scanf("%d",&tt);
      while(tt--)
      {
            ans=0;
            scanf("%d%d",&n,&m);
            int ret;
            for(int i=0;i<=m/5;i++)
            {
                  ret=m-5*i;
                  if(ret>=(n-i)&&ret<=2*(n-i))
                        ans++;
            }
            printf("%d\n",ans);
      }
      return 0;
}

  

posted @ 2015-01-16 20:38  心田定则  阅读(149)  评论(0编辑  收藏  举报