zoukankan      html  css  js  c++  java
  • HDOJ(HDU) 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
    ……

    其实你输出后就会知道。。输出就只有4个数,你可以直接输出。
    在这里,我是写了过程的。

    public class Main{
        static int fact[] = new int[10];
        public static void main(String[] args) {
            dabiao();
            //9!*7 7位数-比9999999小,后面的数字更不用说了,肯定小。
            for(int i=1;i<=9999999;i++){
                if(isTrue(i)){
                    System.out.println(i);
                }
            }
        }
    
        private static void dabiao() {
            //求阶乘的,注意:0的阶乘为1
            fact[0]=1;
            for(int i=1;i<fact.length;i++){
                fact[i]=1;
                for(int j=1;j<=i;j++){
                    fact[i]=fact[i]*j;
                }
            }
        }
    
    
        //判断是不是相等
        private static boolean isTrue(int i) {
            if(i==1||i==2){
                return true;
            }
            int sum=0;
            int n=i;
            while(n!=0){
                int k=n%10;
                sum+=fact[k];
                n=n/10;
            }
            if(sum==i){
                return true;
            }
            return false;
        }
    }
    
  • 相关阅读:
    Oracle数据库备份与恢复的三种方法
    mybatis内置类型
    mybatis中#{}和${}的区别
    Statement和PreparedStatement的区别; 什么是SQL注入,怎么防止SQL注入?
    java web简单权限管理设计
    Flask总结篇
    Django总结篇
    API总结
    实战小练习
    数据操作
  • 原文地址:https://www.cnblogs.com/webmen/p/5739214.html
Copyright © 2011-2022 走看看