当前位置:网站首页>Hanoi Tower problem
Hanoi Tower problem
2022-07-02 22:16:00 【HairLossException】
The origin of the tower of Hanoi problem
It's said that in the ancient temple of India , There is one called the Hanoi Tower (Hanoi) The game of . The game is on a copper device , There are three rods ( Number A、B、C), stay A From the bottom up 、 Place in order from large to small 64 A gold plate . The goal of the game : hold A All the gold plates on the pole are moved to C On the pole , And still keep the original order . Operating rules : Only one plate can be moved at a time , And keep the big plate down all the time during the moving process , Small in , The plate can be placed during the operation A、B、C On any pole .
Thought analysis
If there is only one disc, move the disc directly from the initial column to the target column 
The number of discs is 2 Move the small disc to the auxiliary column, and then move the large disc to the target column 
If you have any n Disc We can put this n A disc is regarded as 2 A plate —— The bottom plate and all the upper plates
(1) The above n-1 A disk moves to B column ( here A The column is the initial column ,B The column is the target column ,C Columns are auxiliary columns )
(2) Move the lowest disc to the target column ( here A The column is the initial column ,C The column is the target column ,B Columns are auxiliary columns )
(3) Move all disks on the auxiliary column to the target disk ( here B The column is the initial column ,C The column is the target column ,A Columns are auxiliary columns )
public class HanoiTower {
public static void main(String[] args) {
hanoiTower(4,'A','B','C');
}
/** * * @param num Number of discs * @param a Starting column * @param b Auxiliary column * @param c Target column */
public static void hanoiTower(int num,char a,char b,char c){
/* If there is only one disc, the disc can be directly removed from a The column moves to c column */
if (num == 1){
System.out.println(" The first 1 A disk from " + a + "->" + c);
}else{
/* The number of discs is greater than 1*/
/* First move all the disks above to from A Move to B column C Columns as auxiliary columns */
hanoiTower(num-1,a,c,b);
/* Move the bottom disk to C column */
System.out.println(" The first "+num+" A disk from " + a + "->" + c);
/* hold B The disc on the column moves to C column A Columns are auxiliary columns */
hanoiTower(num-1,b,a,c);
}
}
}
Running results
The first 1 A disk from A->B
The first 2 A disk from A->C
The first 1 A disk from B->C
The first 3 A disk from A->B
The first 1 A disk from C->A
The first 2 A disk from C->B
The first 1 A disk from A->B
The first 4 A disk from A->C
The first 1 A disk from B->C
The first 2 A disk from B->A
The first 1 A disk from C->A
The first 3 A disk from B->C
The first 1 A disk from A->B
The first 2 A disk from A->C
The first 1 A disk from B->C
Process finished with exit code 0
边栏推荐
- Off chip ADC commissioning record
- Etcd raft protocol
- System (hierarchical) clustering method and SPSS implementation
- Riding the wind of "cloud native" and stepping on the wave of "digitalization", new programmer 003 starts pre-sale
- #include<>和#include“”的区别
- The failure rate is as high as 80%. What should we do about digital transformation?
- *C语言期末课程设计*——通讯录管理系统(完整项目+源代码+详细注释)
- Redis分布式锁故障,我忍不住想爆粗...
- MySQL learning record (3)
- Etcd Raft 协议
猜你喜欢

LandingSite eBand B1冒烟测试用例

D4:非成对图像去雾,基于密度与深度分解的自增强方法(CVPR 2022)
![[shutter] shutter page Jump (route | navigator | page close)](/img/af/3fb2ca18bcec23a5c0c6897570fb53.gif)
[shutter] shutter page Jump (route | navigator | page close)

Basic concepts of image and deep understanding of yuv/rgb

How to test the process of restoring backup files?

Ransack组合条件搜索实现

kubernetes资源对象介绍及常用命令(四)

What is it that makes you tremble? Those without fans can learn

System (hierarchical) clustering method and SPSS implementation

MySQL learning record (6)
随机推荐
Jar package startup failed -mysql modify the default port number / set password free enter
Reading experience of just because
Bridge emqx cloud data to AWS IOT through the public network
VIM command-t plugin error: unable to load the C extension - VIM command-t plugin error: could not load the C extension
Les trois principaux points de douleur traités par servicemesh
SQL必需掌握的100个重要知识点:管理事务处理
GEE:(二)对影像进行重采样
Lightgbm principle and its application in astronomical data
A week's life
What is it that makes you tremble? Those without fans can learn
Ransack组合条件搜索实现
An overview of the development of affective computing and understanding research
Oriental Aesthetics and software design
暑期第一周总结
B.Odd Swap Sort(Codeforces Round #771 (Div. 2))
pyqt图片解码 编码后加载图片
Introduction to the principle of geographical detector
Infrastructure is code: a change is coming
发现你看不到的物体!南开&武大&ETH提出用于伪装目标检测SINet,代码已开源!...
pip安裝whl文件報錯:ERROR: ... is not a supported wheel on this platform