汉诺塔的最简的步骤思路

Posted 流逝之羽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汉诺塔的最简的步骤思路相关的知识,希望对你有一定的参考价值。

public class Hanoi{
/**
* 参数说明:
* n:多个盘子
* from:原杆(其上有多个盘子的杆)
* denpend:中间杆
* to:目标杆
*/
public static void hanoi(int n,char from,char denpend,char to){
if(n==1){
System.out.println("将"+n+"号盘子"+from+"---->"+to);
}else{
hanoi(n-1,from,to,denpend);//将N-1盘子从原杆移动到中间杆
System.out.println("将"+n+"号盘子"+from+"---->"+to);//将第N号盘子从原杆移动至目标杆
hanoi(n-1,denpend,from,to);//将N-1盘子从原杆移动到中间杆
}
}

public static void main(String[] args){
char from=‘A‘;
char denpend=‘B‘;
char to=‘C‘;
System.out.println("盘子移动的情况如下:");
hanoi(4,from,denpend,to);//如果4个的情况下
}

}

以上是关于汉诺塔的最简的步骤思路的主要内容,如果未能解决你的问题,请参考以下文章

汉诺塔的非递归实现(借助堆栈模拟递归)

汉诺塔完整程序小结

汉诺塔的非递归算法

汉诺塔的C语言代码怎么写啊

Hanoi Tower 汉诺塔的简单分析/C

[SHOI2008]汉诺塔