1. 程式人生 > >遞迴的應用——斐波那契數列、漢諾塔(Java實現)

遞迴的應用——斐波那契數列、漢諾塔(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');
    }
}