目录
我们就拿三个盘子来说吧
X Y Z
x,y,z分别代表三个位置,如图
现在我们要把x上面的盘子移动到z上面
大体上可以分为三大步骤:
1,先把前两个从x移动到 y上,具体的步骤是:
x---->z
x---->y
z---->y
2,再把第三个移动到z上
x---->z
3,再把前两个从y移动到 z上,具体的步骤是:
y---->x
y---->z
x---->z
这是三个盘子的步骤,对于n个盘子,也是适用的,因为规律都是从一般到复杂
package test1;
public class hannuotaTest {
public static void main(String[] args) {
hannuotaTest.hannuoTa(15,"x","y","z");
}
public static void hannuoTa(int n,String begin,String mid,String end) {
if(n==1) {//begin,mid,end随着参数列表的参数值不断变化
System.out.println(begin+"--->"+end);
}
else {
hannuoTa(n-1,begin,end,mid);
System.out.println(begin+"--->"+end);
hannuoTa(n-1,mid,begin,end);
}
}
}
汉诺塔也不难 ,啥也别说,干就完了