/**
* @author 小卢先冲
* @date 2023/3/19 22:19
*/
public class 汉诺塔 {
public static void main(String[] args) {
hanoi(3, "A", "B", "C");
}
/**
* 该方法是把n个元素从p1移动到p3
* 形参代表的意思:p1是起点,p3是终点
*/
public static void hanoi(int n, String p1, String p2, String p3) {
if (n == 1) {
move(n, p1, p3);
return;
}
// 先把n-1个元素从p1移动到p2
hanoi(n - 1, p1, p3, p2);
//将第n个元素从p1移动到p3;
move(n, p1, p3);
//再把n-1个元素从p2移动到p3
hanoi(n - 1, p2, p1, p3);
}
public static void move(int n, String from, String to) {
System.out.println("将" + n + "从" + from + "移动到" + to);
}
}
递归学习之——汉诺塔代码详解
于 2023-03-19 22:39:24 首次发布