zoukankan      html  css  js  c++  java
  • HDOJ 2212 DFS

    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
    ……

    分析:9的阶乘为362880, 9!*10 而且由0~9的阶乘组成的最大数就是3628800。
    而且0的阶乘是1,而不是0.
    因为根据阶乘定义 n!=n*(n-1)!;
    1!=1*0!=1;
    所以人为规定了0!=1;

    #include <stdio.h>
    #include <stdlib.h>
    #include <iostream>
    int k[10]= {1,1};
    void ff()
    {
        int i;
        for(i = 2; i < 10; i ++){
            k[i] = k[i-1]*i;
          //  printf("%d
    ",k[i]);
        }
    }
    int main()
    {
        ff();
        long i;
        long a,sum;
        for(i=1; i<=3628800; i++)
        {
            a=i;
            sum=0;
            while(a!=0)//a>0
            {
                sum+=k[a%10];
                a=a/10;
                //printf("%d
    ",a);
            }
            if(sum==i)
                printf("%ld
    ",i);
        }
        return 0;
    }
    
  • 相关阅读:
    POJ 3278 Catch That Cow(BFS)
    POJ 2488 A Knight's Journey(DFS)
    POJ 2386 Lake Counting(DFS)
    迷宫问题(BFS)
    两点(DFS)
    POJ 1001 Exponentiation(大数运算)
    Java IO流01-总叙
    hdu 2065 "红色病毒"问题(快速幂求模)
    POJ 2251 Dungeon Master(BFS)
    POJ 1321 棋盘问题(DFS)
  • 原文地址:https://www.cnblogs.com/webmen/p/5739578.html
Copyright © 2011-2022 走看看