Java 實現 Fibonacci 數列,Hanoi 塔問題

public class Test {
    public static int i;

    public static void main(String[] args) {
        System.out.println("======= Fibonacci數列 =======");
        System.out.println(fibonacci(9));

        System.out.println("======= Hanoi塔問題 =======");
        int n = 4;
        hanoi(n, 'A', 'B', 'C');
        System.out.printf("移動 %d 個盤子,總共需要 %d 步", n, Test.i);
    }

    public static int fibonacci(int n) {
        return n <= 1 ? 1 : (fibonacci(n - 1) + fibonacci(n - 2));
    }

    public static void hanoi(int n, char a, char b, char c) {
        if (n > 0) {
            hanoi(n - 1, a, c, b);
            move(a, b);
            hanoi(n - 1, c, b, a);
        }
    }

    public static void move(char start, char end) {
        i += 1;
        System.out.println(start + " ---> " + end);
    }
}

在這裏插入圖片描述


在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章