汉诺塔详解(超详细)
递归算法求汉诺塔(C语言版)
汉诺塔:
梵天创造世界的时候做了三根金刚石柱子,x y z三根柱子
在x柱子上 从上往下按照从小到大顺序摞着64片黄金圆盘。
梵天命令婆罗门把圆盘从x柱移到z柱
并且规定,大圆盘要在小圆盘下面,一次只能移动一个圆盘。
思路:用递归方式求解
第一步:将n-1片圆盘从x借助z移到y
第二步:将第n片圆盘从x移到z
第三步:将n-1片圆盘从y借助x移到z
#include<stdio.h>
//将n张圆盘从x借助y移到z
void move(int n,char x,char y,char z){//传入需要移动的圆盘个数,和三个柱子 if(n==1){//只有一张圆盘时 printf("%c->%c\n",x,z); } else{//不止一张圆盘 move(n-1,x,z,y);//将n-1张圆盘从x借助z移到yprintf("%c->%c\n",x,z);//将第n张圆盘从x移到z move(n-1,y,x,z);//将n-1张圆盘从y借助x移到z }
}
int main(){int n;printf("请输入汉诺塔的层数\n");scanf("%d",&n);move(n,'x','y','z');return 0;
}
若有不足或建议欢迎评论区留言指出!
汉诺塔详解(超详细)相关推荐
- 汉诺塔详解(包看包会)
CSDN的大佬已经解释了很多了,由我这个菜鸟反复理解后得到的一些心得的分享 先看题: 汉诺塔: 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在一根 ...
- 算法笔记 —— 汉诺塔详解
文章目录 一.问题来源 二.小游戏体验 三.思路分析 四. 程序实现 一.问题来源 相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏.该游戏是在一块铜板装置上,有三根杆(编号X.Y.Z),在 ...
- C语言 - 汉诺塔详解(最简单的方法,进来看看就懂)
文章目录 一.什么是汉诺塔? 二.如何实现捏? 三.如何写代码? 四.为什么需要移动 2^n - 1 次/ 一.什么是汉诺塔? 汉诺塔起源于印度的一个古老传说,传说是什么不重要.重要的是它是怎么实现的 ...
- 汉诺塔详解过程和递归思想及举例(python代码)
省略问题描述- 但我们知道64个盘子的移动次数是18 446 744 073 709 551 615这是一个天文数字 解决办法: 我们最终解决的问题就是将a柱子原来由大到小从下到上排好序的圆盘通过b柱 ...
- python递归汉诺塔详解_汉诺塔在python中递归,理解磁盘目的地的变化
我正在努力提高我对python中hanoi之塔递归解决方案代码的理解. 此代码:def moveTower(height,fromPole, toPole, withPole): if height ...
- Java 泛型详解(超详细的java泛型方法解析)
Java 泛型详解(超详细的java泛型方法解析) 1. 什么是泛型 泛型:是一种把明确类型的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型.也就是说在泛型使用过程中,操作的数据类型被指定为 ...
- mysql 联表比对,MySQL联表查询详解/超详细mysql left join,right join,inner join用法分析比较...
超详细mysql left join,right join,inner join用法分析 下面是例子分析 表A记录如下: aID aNum 1 a20050111 2 a20050112 3 a200 ...
- log4j 配置详解(超详细)
一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...
- 【bind()函数】JavaScript手写bind()及详解-超详细~~~
这两天学习了手写call.apply.bind,手写bind思考了很久才实现了MDN的示例的结果,所以记录下来~ 因为是第一篇文章,所以可能存在一些错误,希望各位大佬批评指正,不吝赐教. 也欢迎不懂的 ...
最新文章
- checkbox未赋值时获取value是on_C语言中的指针——指针的赋值和指向
- visual studio输入法打不了中文_目前比较满意的手机输入法方案:Gboard + 搜狗词库...
- dev c++怎么设置断点_Linux怎么挂载移动硬盘光盘U盘之案例分享
- Dubbo学习总结(6)——Dubbo开源现状与未来规划
- Java中字符串的几个实例
- 【学堂在线数据挖掘:理论方法笔记】第二天(3.18)
- hg255d php,hg255d强刷华硕rt-n13u官方固件果断中继成功
- 教你视频去色效果怎么操作
- 【ZBrush笔刷】实用笔刷和Alpah下载,及笔刷使用方法
- 如何做一个基于python电影院售票系统毕业设计毕设作品(Django框架)
- 2011英语一长难句
- 如何提高BT的下载速度?
- 开关电源个人总结(电感部分与滤波电容)
- Kafka Topic分区手动迁移:kafka-reassign-partitions
- ffmpeg 为视频添加背景音乐---单音频轨道stream
- php开源 会员资料,会员详情/会员信息/用户信息
- 基于CentOs的docker的安装和简单使用
- SSO单点登录-基于cookie的单点登录
- Google Play 上架总结(二)Google账户关联详解
- 2016中欧绿色和智慧城市奖正式启动
热门文章
- 搭建云平台过程中的错误及解决方案1
- 奔骝定位摄影作品之LAS200
- 中国最大在线保健品供应商“健康中国”停业
- RMAN Recipes 中对Flash Recovery Area的总结
- oracle安装 redo log,Oracle Redo Log 及Logmnr配置使用
- hive2.3.2+mysql5.7.21驱动包_2018-08-30期 Hive外部元数据库配置
- 关于dma_alloc_coherent的用法
- 表空间的空间管理算法
- 登月疑问:为什么没有在月球上拍地球的照片?
- Element table 导出Excel重复数据