首页 > 代码库 > 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从勇敢塔移到正直塔
是不是很有意思呢?
JAVA——汉诺塔
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。