以下是使用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/mSwJ 著作权归作者所有。请勿转载和采集!

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