Java实现汉诺塔算法:代码详解与步骤分析
以下是使用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。在移动过程中,通过打印输出可以观察到每一步的移动情况。
原文地址: https://www.cveoy.top/t/topic/mSwJ 著作权归作者所有。请勿转载和采集!