问题描述
哈哈哈哈哈哈,自己去4399玩汉诺塔游戏
代码实现
package com.wuxudong.recursion;
//汉诺塔问题
public class Hanoi {
public static void main(String[] args) {
hanoi(5,'A','B','C');
}
/**
*
* @param n 盘子的个数
* @param from 开始的柱子
* @param in 中间的柱子
* @param to 目标柱子
*/
public static void hanoi(int n, char from,char in, char to){
//只有两个情况,只有一个盘子和其它大于一个盘子的情况
//只有一个盘子
if(n==1){
System.out.println("第1个盘子从"+from+"移动到"+to);
}else {
//无论有多少个盘子都看成两个盘子,上面所有n-1个盘子和下面的一个盘子
//将上面的盘子移动到中间位置
hanoi(n-1,from,to,in);
//将第n个盘子移动到目标柱子
System.out.println("第"+n+"个盘子从"+from+"移动到"+to);
//将中间柱子的盘子移动到目标柱子
hanoi(n-1,in,from,to);
}
}
}
来源:https://blog.csdn.net/wuxudong12138/article/details/99694625