递归简单计算 及 省略写法

递归简单计算:

求1到n的和 和 n的阶乘

package com.test.test01;

public class Test04 {
    public static void main(String[] args) {
        int add = add(5);
        System.out.println("add = " + add); //add = 15

        int mul = mul(5);
        System.out.println("mul = " + mul); //mul = 120


    }

    private static int mul(int num) {
        if(num==1){
            return 1;
        }
        return num*mul(num-1);


    }

    
    private static int add(int num){
        /*if(num==1){
            return 1;
        }
        return num+add(num-1);*/

        //可以使用一行代码搞定(三元运算符)
        return num == 1 ? 1 : num + add(num - 1);
    }
}
/*
num     add(num-1)
 5        5+add(4)   15
 4        4+add(3)   10
 3        3+add(2)   6
 2        2+add(1)   3
 1        add(1)=1

 */

posted @ 2020-06-13 14:46  阿亮在努力  阅读(154)  评论(0)    收藏  举报