public class Hanoi {
public static void main(String[] args) {
Hanoi hanoi = new Hanoi();
hanoi.hanoiMove(3,'a','b','c');
}
//a:要挪动盘子的位置,c:需要挪动到的位置,b:借助的中间位置
public void hanoiMove(int n,char a,char b,char c){
if(n == 1){
//递归出口
move(a,c);
}else{
//把a柱除了最下面的那块上面的所有盘子看作一个整体,递归的挪到b去;
hanoiMove(n-1,a,c,b);
//把a柱最下面的那块挪到c;
move(a,c);
//把b柱的第一步到来的所有盘子最后挪到c;
hanoiMove(n-1,b,a,c);
}
}
public void move(char from ,char to){
System.out.println("Move :"+ from + "," + to);
}
}
汉诺塔问题
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱...