DFS 2212

来源:互联网 发布:如何创建淘宝店铺 编辑:程序博客网 时间:2024/05/28 16:04

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

......

#include <cstdio>const int MAX = 50000;int factorial(int x);int main(int argc, const char* argv[]){    for (int i=1; i<=MAX; ++i)    {        int nTemp = i;        int nSum = 0;        while (nTemp != 0)        {            nSum +=factorial(nTemp%10);            nTemp /= 10;        }        if (i == nSum)        {            printf("%d\n", i);        }    }    return 0;}int factorial(int x){    int n = 1;    for (int i=1; i<=x; ++i)    {        n *= i;    }    return n;}
0 0
原创粉丝点击