汉诺塔递归算法
来源:互联网 发布:军工大数据龙头股票 编辑:程序博客网 时间:2024/06/08 00:20
汉诺(Hanoi)塔问题:古代有一个梵塔,塔内有三个座A、B、C,A座上有数个盘子,盘子大小不等,大的在下,小的在上(如图)。有一个和尚想把这些个盘子从A座移到B座,其中可利用C柱子。但是有两个要求:
(1)每次只能允许移动一个盘子;
(2)在移动过程中,3个座上的盘子始终保持大盘在下,小盘在上;
分析:首先我们将A作为源柱子,B作为目的柱子,C作为辅助柱子;
1. 先将n-1个盘子从A(源柱子)上移动到C(辅助柱子)上,以B(目的柱子)作为辅助;
2. 当第一步操作完,源柱子上就剩最底下最大的那个盘子,也就是将第n个盘子从A(源柱子)上移动到B(目的)柱子上;
3. 最后,再将n-1个盘子从C(辅助柱子)上移动到B(目的柱子)上,以A(源柱子)作为辅助。
#include<stdio.h>//s源柱子,a辅助柱子,t目标柱子 void hannoi(int n,char s,char a,char t){staticint num; if(n > 0){hannoi(n-1,s,t,a);printf("第%d次移动,第%d块盘子从%c->%c\n",++num,n,s,t);hannoi(n-1,a,s,t);}}int main(void){int n;printf("输入盘子数:");scanf("%d",&n);hannoi(n,'A','B','C');return 0;}
0 0
- 汉诺塔-递归算法和非递归算法
- 汉诺塔 算法(递归和非递归算法)
- 汉诺塔递归算法
- 汉诺塔-递归算法
- 汉诺塔(递归算法)
- 递归_汉诺塔算法
- 汉诺塔-递归算法
- 汉诺塔与递归算法
- 汉诺塔问题递归算法
- 递归算法-汉诺塔问题
- 递归算法--汉诺塔问题
- 汉诺塔递归算法
- 汉诺塔--递归算法
- 递归算法---汉诺塔
- 汉诺塔-递归算法
- 汉诺塔递归算法
- 汉诺塔---递归算法
- 汉诺塔递归算法
- 函数指针
- Linux下硬链接和软链接
- 第七周项目1-点类-成员函数
- HDU 1978 How many ways 记忆化dfs+dp
- C#中常用容器的使用与底层数据结构
- 汉诺塔递归算法
- script 的运行方式差异 (source, sh script, ./script)
- 2010年上海交通大学计算机研究生机试真题
- 一些JS事件
- leetcode---Path Sum
- Whu oj 1604 - Play Apple
- torch 安装中遇到的链接库的问题
- Java中equals和==的区别
- 从java进程里dump出类的class文件的小工具--dumpclass