zoukankan      html  css  js  c++  java
  • JAVA——汉诺塔

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

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

    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从勇敢塔移到正直塔
    

      是不是很有意思呢?

  • 相关阅读:
    .net MVC 图片水印,半透明
    提取数据库字段里面的值,并改变+图片懒加载,jquery延迟加载
    sqlalchemy + alembic数据迁移
    fastfdfs搭配nginx
    ubuntu安装fastdfds
    django自定义实现登录验证-更新版
    tornado异步
    django发送邮件的坑
    python3.6 ubuntu部署nginx、 uwsgi、 django
    ubuntu安装python3.6
  • 原文地址:https://www.cnblogs.com/X404/p/6941931.html
Copyright © 2011-2022 走看看