首页 > 编程语言 > 详细

JAVA——汉诺塔

时间:2017-06-04 22:05:29      阅读:281      评论:0      收藏:0      [点我收藏+]

大家还记得某年春晚小品那个把大象放冰箱需要几步吗?

今天,我准备写的是汉诺塔,有三个魔法石柱,分别:诚实、勇敢、正直。其中有一个石柱上从大到小,从地向上依次排放着四个魔法圆环,需要将那四个魔法圆环分别按照大的上面放小的,不可以在小的上面放大的的;需要几步?

import java.util.Scanner;

public class ssr {
    static int step = 0;  
    public static void main(String[] args) {
        //汉诺塔
      hanio(4, "诚实", "勇敢", "正直");  
            }  
          
            
            public static void hanio(int num ,String a ,String b ,String c){  
                if(num == 1){  
                    move(num,a,c);  
                } else{  
                    hanio(num-1, a, c, b);  
                    move(num,a,c);  
                    hanio(num-1, b, a, c);  
                }  
            }  
            public static void move(int num ,String a,String b){  
            step ++ ;  
            System.out.println(""+step+"步,盘子"+num+""+a+"塔移到"+b+"");  
        


    }
    
}

运行结果:

第1步,盘子1从诚实塔移到勇敢塔
第2步,盘子2从诚实塔移到正直塔
第3步,盘子1从勇敢塔移到正直塔
第4步,盘子3从诚实塔移到勇敢塔
第5步,盘子1从正直塔移到诚实塔
第6步,盘子2从正直塔移到勇敢塔
第7步,盘子1从诚实塔移到勇敢塔
第8步,盘子4从诚实塔移到正直塔
第9步,盘子1从勇敢塔移到正直塔
第10步,盘子2从勇敢塔移到诚实塔
第11步,盘子1从正直塔移到诚实塔
第12步,盘子3从勇敢塔移到正直塔
第13步,盘子1从诚实塔移到勇敢塔
第14步,盘子2从诚实塔移到正直塔
第15步,盘子1从勇敢塔移到正直塔

  是不是很有意思呢?

JAVA——汉诺塔

原文:http://www.cnblogs.com/X404/p/6941931.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!