
- 发明人
- 爱德华·卢卡斯
- 中文名称
- 汉诺塔
- 外文名称
- Tower of Hanoi
- 又 称
- 河内塔
-
汉诺塔
2016-11-03 19:46:47汉诺塔像汉诺塔这样的需要用到递归的题,总是弄不太明白,当我用了一个上午,一步步的循环,终于抓住了他们的规律,现把自己的经验分享如下:
/* 从 A->C移动汉诺塔 */
/*汉诺塔的主体思想是:要把n个盘子从A柱移动到C柱,肯定需要借助B柱,只有把前n-1个盘子移到B柱,才可以把第n个盘子移动到C柱,
这时,考虑的就是把n-1个盘子从B柱移到C柱,借助A柱,把n-2个盘子移到A柱,自然第n-2个盘子可以移到C柱。从n不断往上递归,就可
以写出程序
举例:3 盘子
要把3移到C,就要把2和1移到B,要把2移到B,就要把1移到C,
所以:
把1移到C,把2移到B,把1移到B,把3移到C;此时:A:— B:2,1 C:3
把1移到A,把2移动C; A: 1 B:— C:3,2
把1移到C; A: — B:— C:3,2,1
*/
#include<stdio.h>
int move(int n,char A,char C,char B)
{
printf("%c--%d--%c\n",A,n,C);
return 0;
}
void hanno(int n,char A,char C,char B)
{
if(n==1)
{
printf("%c--%d--%c\n",A,n,C);
}
else{
hanno(n-1,A,B,C);
// hanno(n-1,C,B,A);
move(n,A,C,B);
hanno(n-1,B,C,A);
}
}
int main ()
{
hanno(3,'A','C','B');
return 0;
}
-
沐风老师Scratch3.0快速入门视频教程
-
Android AccessibilityService无障碍服创建 与 权限判断
-
Jmeter之JSON Extractor<JSON 提取器>(二)
-
language-vyper:Atom中对Vyper语言的支持-源码
-
dokit:基于Spring Boot2,Jpa,Spring Security,JWT,redis,Vue的前分离分离的后台管理系统开发平台,用户管理,菜单管理,角色管理,字典管理,权限控制的方式为RBAC,操作日志,异常日志,接口限流,项目支持数据权限管理,支持一键生成前代码(支持在线预览及打包下载),支持前端菜单动态路由可一键部署服务器应用,数据库。系统中活跃用户状态监控,监视当前系统CPU,内存,磁盘,磁盘等相关信息,基于元素UI在线表单设计及生成Vue代码-源码
-
JAVAEE主流框架之MyBatis框架实战开发教程(源码+讲义)
-
算法导论(基础知识)——编程大牛的必经之路
-
shell脚本运行jar包
-
UnitySocket异步聊天室
-
Neighbor Grid
-
JSON-handle-master.zip
-
Vue中组件间通信的方式
-
Hibernate IllegalArgumentException occurred while calling setter for property问题件解决
-
计算机科学与技术 课设资料 毕设.zip
-
USB转串口驱动_CH340.rar
-
atom-ide-base:适用于Atom的Atom IDE软件包-源码
-
步进电机的加减速控制算法 C语言实现.pdf
-
list_of_robot_electronics:精选的很棒的机器人开源电子资源清单-源码
-
剑指Offer 树的子结构
-
启动springboot项目jar包的linux脚本