递归解决汉诺塔问题
汉诺塔问题 问题描述 代码实现 问题描述 哈哈哈哈哈哈,自己去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); } }