求1+2!+3!+...+20!的和

题目:求1+2!+3!+...+20!的和

1.程序分析:此程序只是把累加变成了累乘。

public class 第二十一题求阶乘的数列 {
    public static void main(String[] args) {
        /*
         * 思路:设定一个函数来计算每一项的值
         *         然后再加起来
         */
        long sum = 0; //存放数列的和
        for(int i=1; i<21; i++) {
            sum+= factorial2(i);
        }
        System.out.println("数列的和为:"+sum);
    }
    public static long factorial(int n) {
        long result = 1;//存放阶乘的结果
        for(int i=1; i<n+1; i++) {
            result*=i;
        }
        return result;
    }
    //使用递归实现
    public static long factorial2(int n) {
        if(n==1) { 
            return 1;
        } else {
            return n*factorial2(n-1);
        }
    }
}

 

posted @ 2019-05-30 14:57  何茫然zju  阅读(1582)  评论(0编辑  收藏  举报