最近微信小程序有个汉诺塔小游戏,觉得玩的多了就发现其中的规律,应用很像一个递归,就写了个攻略(不同圆盘数的最少移动方法)
很经典的游戏:
有三根相邻的柱子,标号为A,B,C,A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘,要把所有盘子一个一个移动到柱子B上,并且每次移动同一根柱子上都不能出现大盘子在小盘子上方,通过移动使得如何移动的次数最小。
代码如下:`
public class Hanoi {
public static void tower(int Nas,char from,char inter,char to) {
if(Nas == 1)
System.out.println("圆盘1,从塔"+from+"移动到塔"+to);
else {
tower(Nas-1,from,to,inter);
System.out.println("圆盘"+Nas+",从塔"+from+"移动到塔"+to);
tower(Nas-1,inter,from,to);
}
}
}
public class test {
public static void main(String[] args) {
new Hanoi().tower(3, 'A', 'B', 'C');
}
}
按步移动,完成。