/**
* 汉诺塔问题
* @author qiu
* if(n>1){
* 1、先把A柱子上的前n-1个盘子从A借助C移到B
* 2、将A柱子上的第n个盘子直接移到C
* 3、再将B柱子上的n-1个盘子借助A移到C
* }
*
*/
public class Hanoi {
public static void main(String[] args) {
char ch1='A'; //柱子A
char ch2='B'; //柱子B
char ch3='C'; //柱子C
int n=6;
hanoi(n,'A','B','C');
}
private static void hanoi(int n, char x, char y, char z) {
if(n==1) {
System.out.println("将编号为"+n+"的盘子直接从"+x+"移到"+z);
}else {
hanoi(n-1,x,z,y);
System.out.println("将编号为"+n+"的盘子直接从"+x+"移到"+z);
hanoi(n-1,y,x,z);
}
}
}
递归算法之汉诺塔问题
最新推荐文章于 2022-05-17 22:21:56 发布