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);
    }
}

在这里插入图片描述


在这里插入图片描述

发布了152 篇原创文章 · 获赞 2710 · 访问量 62万+

猜你喜欢

转载自blog.csdn.net/qq_43901693/article/details/105240924