• 计算 1+2!+3!+4!+...20!=?


    package algs.factorial;
    
    import java.math.BigInteger;
    
    /**
     * Author: areful
     * Date: 2019/3/6
     * 计算 sum(n!), n=1,2, ... 20
     */
    public class NFactorial {
        public static void main(String[] args) {
            System.out.println(calcFactorial0(3));
            System.out.println(calcFactorial1(3));
            System.out.println(calcFactorial2(3));
    
            System.out.println(calcFactorial0(50));
            System.out.println(calcFactorial1(50));
            System.out.println(calcFactorial2(50));
        }
    
        private static long calcFactorial0(int n) {
            long sum = 0L;
            long l = 1L;
            for (int i = 1; i <= n; i++) {
                l *= i;
                sum += l;
            }
            return sum;
        }
    
        private static double calcFactorial1(int n) {
            double sum = 0L;
            double l = 1L;
            for (int i = 1; i <= n; i++) {
                l *= i;
                sum += l;
            }
            return sum;
        }
    
        private static BigInteger calcFactorial2(int n) {
            BigInteger sum = BigInteger.valueOf(0L);
            BigInteger l = BigInteger.valueOf(1L);
            for (int i = 1; i <= n; i++) {
                BigInteger mul = BigInteger.valueOf(i);
                l = l.multiply(mul);
                sum = sum.add(l);
            }
            return sum;
        }
    }
    

      运行结果:

  • 相关阅读:
    SQL中存储过程与自定义函数的区别
    内置函数
    正则表达式
    HTML发展史
    触发器
    事务
    视图
    索引的使用
    存储过程和自定义函数的区别
    游标用法
  • 原文地址:https://www.cnblogs.com/areful/p/10481162.html
Copyright © 2020-2023  润新知