汉诺塔详解(超详细)
- 汉诺塔详解(超详细) 推荐度:
- 相关推荐
汉诺塔详解(超详细)
递归算法求汉诺塔(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;
}
若有不足或建议欢迎评论区留言指出!
最新文章
- 传Facebook拟收购网络浏览器厂商Opera软件公司
- Java 接口+继承
- Android
- model.parameters()的理解与使用
- 信息安全密码技术
- 高速PCB 设计中终端匹配电阻的放置
- 强化学习及Python代码示例
- 数字信号处理实验线性卷积与循环卷积计算
- 渗透测试类型(白盒测试、黑盒测试)和漏洞扫描器
- 【Jmeter 简单使用】
- 三维偏序cdq
- CDQ分治(二维CDQ 、三维CDQ+树状数组、四维CDQ+CDQ+树状数组)
- Gabor滤波器为什么能实现频率域加窗
- python语法基础
- 11221
- python thinker 简易计算器
- python 安装TFLearn模块
- hadoop安装步骤
- 我最爱用的一款 Redis 可视化管理工具——Another Redis Desktop Manager
- 双色球中奖概率(彩市有风险,需谨慎投注!)