求助:求JAVA环境下的四柱汉诺塔问题源代码

来源:百度知道 编辑:UC知道 时间:2024/05/16 19:56:53
要求用递归方法实现

public class Tower {

/**
* 显示移动位置
*
* @param x
* @param Source
* @param Target
*/
void moveIt(int x, int Source, int Target) {
System.out.println("移动 [" + x + "] 从 " + Source + " 到 "
+ Target);
}

/**
*
* @param n
* 盘子数量
* @param First
* 第一根柱子
* @param Second
* 第二根柱子
* @param Third
* 第三根柱子
* @param Fourth
* 第四根柱子
* @return
*/
int MoveHanoi(int n, int First, int Second, int Third, int Fourth) {
if (n < 1)
return 0; // 如果没有盘子就返回
if (n == 1) // 如果只有一个盘子
{
moveIt(n, First, Fourth); // 就直接从源柱子移到目标柱子上
return 0;
}
if (n == 2) // 如果有两个盘子
{
moveIt(n - 1, First, Second); // 把上面的那片移到一个过渡柱上
moveIt(n, First, Fourth); // 把下面的那片移到目标