汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
后来,这个传说就演变为汉诺塔游戏,玩法如下:
- 1.有三根杆子A,B,C。A杆上有若干碟子
- 2.每次移动一块碟子,小的只能叠在大的上面
- 3.把所有碟子从A杆全部移到C杆上
方法:四个参数依次为:要移动的n个碟子;从left杆移动;借助mid杆;移动到right杆上。
package com.example.demo;
public class test1 {
public static void test(int n,String left,String mid,String right){
if(n==1)
System.out.println("Disk 1 from " + left + " to " + right);
else{
test(n-1,left,right,mid);
System.out.println("Disk " + n + " from " + left + " to " + right);
test(n-1,mid,left,right);//n-1个盘子,从mid杆上移动到right杆上,借助left杆
}
}
public static void main(String[] args){
int n=3;
test(3,"left","mid","right");
}
}