【Java基础】递归方法

1.计算1-n之间所有自然数的和

    public int getSum(int n){
        if (n==1){
            return 1;
        }else {
            return n+getSum(n-1);
        }
    }

2.计算1-n之间所有自然数的乘积,即n的阶乘:n!

    public int getMultiply(int n){

        if (n==1){
            return 1;
        }
        return n*getMultiply(n-1);
    }

3.已知一个数列

已知一个数列:f(0) = 1,f(1) = 4,f(n+2)=2×f(n+1) + f(n),
其中n是大于0的整数,求f(10)的值。
直接return f(n+2)-2×f(n+1)是错的,会报栈溢出。

设n+2 = t
f(n+2) = 2×f(n+1) + f(n),转化为
f(t) = 2×f(t-1)+f(t-2)

    public int getFTen(int n){
        if (n==0){
            return 1;
        }else if (n==1){
            return 4;
        }else {
            return 2*getFTen(n-1)+getFTen(n-2);
        }
    }
posted @ 2022-09-02 16:42  植树chen  阅读(65)  评论(0编辑  收藏  举报