当前位置:网站首页>Recursive implementation of the Tower of Hanoi problem
Recursive implementation of the Tower of Hanoi problem
2022-07-31 04:01:00 【GD_small_bit】
I brought the Tower of Hanoi todayC语言实现代码.
汉诺塔(Tower of Hanoi),又称河内塔,是一个源于印度古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上.并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘.
There are three pillars as follows:
游戏规则如下:在a柱上会有n个盘子,And the big plate is below,The small plate is on top,每次只能移动一个盘子,Press the plate from largest to smallestcThe pillars are arranged upwards.
Suppose there is only one plate,Then we take the plate directly fromacolumn moved toc柱,即a->c.
假设aThere are two plates on the column,Then we should move the plate to the smaller oneb柱,Then move the larger platec盘,再将bThe plate on the column is moved toc柱,即 a->b , a->c , b->c This also completes the mission of the game.
假设a柱上有三个盘子,Then we should remove the smallest plate froma柱移到c柱,Then remove the smaller plate froma柱移到b柱,Then remove the smallest plate fromc柱移到b柱,再将最大的盘子从a柱移到c柱,再将bThe column with the smallest column moves toa柱,再将bMove the column to the smaller platec柱,最后把aMove the column plate toc柱.即 a->c , a->b , c->b , a->c , b->a , b->c , a->c .
下面是代码实现.
#include<stdio.h>
void move (char pos1,char pos2)
{
printf(" %c->%c ",pos1,pos2);
}
void Hanoi (int n ,char pos1,char pos2,char pos3)
{
if(n==1)
{
move(pos1,pos3);
}
else
{
Hanoi(n-1,pos1,pos3,pos2);
move(pos1,pos3);
Hanoi(n-1,pos2,pos1,pos3);
}
}
int main ()
{
Hanoi(1,'a','b','c');
printf("\n");
Hanoi(2,'a','b','c');
printf("\n");
Hanoi(3,'a','b','c');
printf("\n");
}
运行结果如下:
如果觉得写的可以,关注点一点,下期更精彩.
边栏推荐
- Notes on the establishment of the company's official website (6): The public security record of the domain name is carried out and the record number is displayed at the bottom of the web page
- [C language] Three-pointed chess (classic solution + list diagram)
- errno错误码及含义(中文)
- pom文件成橘红色未加载的解决方案
- Redis uses sorted set to cache latest comments
- How Zotero removes auto-generated tags
- Why SocialFi achievement Web3 decentralized social in the future
- IDEA常用快捷键与插件
- ClickHouse: Setting up remote connections
- Regarding the primary key id in the mysql8.0 database, when the id is inserted using replace to be 0, the actual id is automatically incremented after insertion, resulting in the solution to the repea
猜你喜欢

Ambiguous method call.both

idea工程明明有依赖但是文件就是显示没有,Cannot resolve symbol ‘XXX‘

Win10 CUDA CUDNN 安装配置(torch paddlepaddle)

组件传值 provide/inject
![[C language] General method of expression evaluation](/img/59/cf43b7dd16c203b4f31c1591615955.jpg)
[C language] General method of expression evaluation

【小土堆补充】Pytorch学习笔记_Anaconda虚拟环境使用

pom文件成橘红色未加载的解决方案

Knowledge Distillation 7: Detailed Explanation of Knowledge Distillation Code

The application and practice of mid-to-platform brand advertising platform

qlib架构
随机推荐
Database implements distributed locks
el-image标签绑定点击事件后没有有用
"DeepJIT: An End-To-End Deep Learning Framework for Just-In-Time Defect Prediction" paper notes
SIP协议标准和实现机制
微软 AI 量化投资平台 Qlib 体验
Can‘t load /home/Iot/.rnd into RNG
els block to the left to move the conditional judgment
Can't load /home/Iot/.rnd into RNG
interprocess communication
安全20220718
问题1:给你1-10的列表,实现列表输出,单数在左边,双数在右边。
安全20220722
Redis 使用 sorted set 做最新评论缓存
组件传值 provide/inject
The application and practice of mid-to-platform brand advertising platform
Knowledge Distillation 7: Detailed Explanation of Knowledge Distillation Code
【AUTOSAR-RTE】-4-Port and Interface and Data Type
[Swift] Customize the shortcut that pops up by clicking the APP icon
端口排查步骤-7680端口分析-Dosvc服务
安全20220715


