java 面向对象(七):类结构 方法(四)递归方法

1.定义:
递归方法:一个方法体内调用它自身。
2.如何理解递归方法?
> 方法递归包含了一种隐式的循环,它会重复执行某段代码,但这种重复执行无须循环控制。
> 递归一定要向已知方向递归,否则这种递归就变成了无穷递归,类似于死循环。
3.举例:
// 例1:计算1-n之间所自然数的和

复制代码

    public int getSum(int n) {// 3

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

    }

复制代码

// 例2:计算1-n之间所自然数的乘积:n!

复制代码

    public int getSum1(int n) {

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

    }

复制代码

//例3:已知一个数列:f(0) = 1,f(1) = 4,f(n+2)=2*f(n+1) + f(n),
//其中n是大于0的整数,求f(10)的值。

复制代码

    public int f(int n){
        if(n == 0){
            return 1;
        }else if(n == 1){
            return 4;
        }else{
//            return f(n + 2) - 2 * f(n + 1);
            return 2*f(n - 1) + f(n - 2);
        }
    }

复制代码

//例4:斐波那契数列

//例5:汉诺塔问题

//例6:快排

原文地址:https://www.cnblogs.com/hzcya1995/p/13308909.html