递归的应用——斐波那契数列、汉诺塔(Java实现)

package ch06;

public class Fibonacci {
    public static int getNumber(int n) {
        if(n == 1) {
            return 0;
        } else if(n == 2){
            return 1;
        } else {
            return getNumber(n - 1) + getNumber(n - 2);
        }
    }
}
package ch06;

public class TestFibonacci {
    public static void main(String[] args) {
        System.out.println(Fibonacci.getNumber(5));
    }
}

package ch07;

public class HanoiTower {

    /**
     * 移动盘子 
     * topN:移动的盘子数 
     * from:起始塔座 
     * inter:中间塔座 
     * to:目标塔座
     */
    public static void doTower(int topN, char from, char inter, char to) {
        if (topN == 1) {
            System.out.println("盘子1,从" + from + "塔座到" + to + "塔座");
        } else {
            doTower(topN - 1, from, to, inter);
            System.out.println("盘子" + topN + ",从" + from + "塔座到" + to + "塔座");
            doTower(topN - 1, inter, from, to);
        }
    }
}
package ch07;

public class TestHanoiTower {
    public static void main(String[] args) {
        HanoiTower.doTower(5, 'A', 'B', 'C');
    }
}