li

XXXXX

 

java---递归

一、什么是递归?

首先是直接或间接的调用自身方法,它的作用是实现循环,在这块有个典型的汉诺塔案例

二、实现递归需要具备三个条件:

1、小规模问题解决了,大规模问题就很容易解决了;

2、小规模问题解决方法和大规模问题解决方法相同;

3、当规模小到一定程序,则问题自然解决。

三、案例:计算阶乘:

public class diguianli {
    static int factor(int n){//计算阶乘
        if(n == 1){
            return 1;
        }
        return factor(n - 1)* n;
    }
    public static void main(String[] args) {
        System.out.println(factor(8));
    }
}

四、猴子吃桃:

public class Monkey {
    static int monkey(int day){
        if(day == 10)
            return 1;
        return (monkey(day+1)+1) *2;
    }
    public static void main(String[] args) {
        System.out.println(monkey(1));
    }
}

五、汉诺塔:

public class Hanoi {
    static void hanoi(int n,char from,char cross,char to) {
        if (n == 1) {
            System.out.println(n + ":" + from + "-------->" + to);
        } else {
            hanoi(n - 1, from, to, cross);
            System.out.println(n + ":" + from + "-------->" + to);
            hanoi(n - 1, cross, from, to);
        }
    }
    public static void main(String[] args) {
        hanoi(4,'A','B','C');
    }
}

 

posted on 2022-05-31 08:21  LXXXXxZz  阅读(42)  评论(0编辑  收藏  举报

导航