汉诺塔问题(java解析代码版)

此文章只解析代码部分问题,理解汉诺塔,但是不理解代码的可以看一下,希望能帮到各位,如果有什么地方错了,欢迎指正。

不过其实主要还是给自己看的,怕到时候忘记

汉诺游戏规则如下:

1、有三根相邻的柱子,标号为A,B,C。

2、A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘。

3、现在把所有盘子一个一个移动到柱子B上,并且每次移动同一根柱子上都不能出现大盘子在小盘子上方。

  • 思路:我也不会,先看move()部分代码先,不懂的看解析,然后就会了
java 复制代码
public void move(int n,char a,char b,char c) {
        if (n == 1){
            System.out.println(a+"->"+c);
        }else {  //先将这个代码假设 n = 2 来分析这段代码
            //将a移b
            move(n-1,a,c,b);
            //将a移到c
            System.out.println(a+"->"+c);
            //将中间的b移到c
            move(n-1,b,a,c);
        }
    }

解析:建议自己画图分析 ,然后再看就会了

看完自己再分析一下就懂了。

然后如果我自己忘记了

那大于二的盘子怎么走?比如n =3,但是头两个盘子已经被移到c柱子了。

但是注意第一步传入的参数并不是abc而是acb ,所以,头两个盘子是被移动到B柱子了

相关推荐
hdsoft_huge12 小时前
Java & Spring Boot常见异常全解析:原因、危害、处理与防范
java·开发语言·spring boot
风中的微尘12 小时前
39.网络流入门
开发语言·网络·c++·算法
雨白13 小时前
Java 多线程指南:从基础用法到线程安全
android·java
Hungry_Shark13 小时前
IDEA版本控制管理之使用Gitee
java·gitee·intellij-idea
赛姐在努力.13 小时前
《IDEA 突然“三无”?三秒找回消失的绿色启动键、主菜单和项目树!》
java·intellij-idea
未来之窗软件服务13 小时前
幽冥大陆(二)RDIFSDK 接口文档:布草洗涤厂高效运营的技术桥梁C#—东方仙盟
开发语言·c#·rdif·仙盟创梦ide·东方仙盟
猎板PCB黄浩13 小时前
从废料到碳减排:猎板 PCB 埋容埋阻的绿色制造革命,如何实现环保与性能双赢
java·服务器·制造
ZzzK,13 小时前
JAVA虚拟机(JVM)
java·linux·jvm
西红柿维生素13 小时前
JVM相关总结
java·jvm·算法
小冯记录编程13 小时前
C++指针陷阱:高效背后的致命危险
开发语言·c++·visual studio