数据结构与算法基础-汉诺塔(Java)
程序员文章站
2024-03-16 16:01:04
...
/**
* @author lixin
* @date 2019/3/14 - 21:21
*/
public class Testhanoi {
public static void main(String[] args) {
hanoi(3, 'A', 'B', 'C');
}
/**
* @param n 一共有N个盘子
* @param from 开始的柱子
* @param in 中间柱子
* @param ta 目标柱子
*/
private static void hanoi(int n, char from, char in, char ta) {
//只有一个盘子
if (n == 1) {
System.out.println("第1个盘子从" + from + "移到" + ta);
//无论有多少盘子,都认为只有两个盘子,上面的盘子和最下面的一个盘子.
} else {
//移动上面所有的盘子到中间位置
hanoi(n - 1, from, ta, in);
//移动下面盘子
System.out.println("第"+n+"个盘子从" + from + "移到" + ta);
//把上面所有盘子从中间位置移动到目标位置
hanoi(n - 1, in, from, ta);
}
}
}