以下是使用java实现汉诺塔的代码:

public class HanoiTower {
    public static void main(String[] args) {
        int n = 3;  // 将3个盘子从A移动到C
        hanoi(n, 'A', 'B', 'C');
    }
 
    public static void hanoi(int n, char from, char mid, char to) {
        if (n == 1) {  // 只有1个盘子时直接移动
            System.out.println("Move disk 1 from " + from + " to " + to);
        } else {
            // 把n-1个盘子从from移动到mid
            hanoi(n - 1, from, to, mid);
            // 把第n个盘子从from移动到to
            System.out.println("Move disk " + n + " from " + from + " to " + to);
            // 把n-1个盘子从mid移动到to
            hanoi(n - 1, mid, from, to);
        }
    }
}

上述代码中,hanoi()方法实现了汉诺塔的递归移动过程。当只有1个盘子时,直接从from移动到to;当有多个盘子时,先把前n-1个盘子从from移动到mid,再把第n个盘子从from移动到to,最后把前n-1个盘子从mid移动到to。在移动过程中,通过打印输出可以观察到每一步的移动情况。

使用java写出汉诺塔

原文地址: https://www.cveoy.top/t/topic/bpy0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录