JavaSE中你想看的例子——递归(1-20阶乘之和)

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

 

方法一(递归):找规律,找出口

public class Test01 {
    public static void main(String[] args) {
        long sum = 0;
        for (int i = 1; i <= 20; i++) {
            sum = sum + DiGui(i);
        }
        System.out.println(sum);
    }
    
    public static long DiGui(int a) {
        if (a == 1) {
            return 1;     //递归的出口
        }else{
            return a*DiGui(a-1);
        }
    }
}

 

 

方法二(for循环):

public class Test01 {
    public static void main(String[] args) {
       long sum = 0;
        for (int i = 1; i <= 20; i++) {
            long c = 1;
            for (int j = 1; j <= i; j++) {
                c = c * j;
            }
            s = s + c;
        }
        System.out.println(s);
    }
}

 

posted @ 2017-05-05 20:14  Java_皮卡丘漏电  阅读(686)  评论(0编辑  收藏  举报