美文网首页
汉诺塔问题

汉诺塔问题

作者: JaJIng | 来源:发表于2019-04-02 19:03 被阅读0次
    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);
        }
    }
    

    相关文章

      网友评论

          本文标题:汉诺塔问题

          本文链接:https://www.haomeiwen.com/subject/jrlnbqtx.html