动手敲代码——递归(汉诺塔问题)
2016-09-10 20:52
309 查看
/*N阶汉诺塔递归实现:如果将n个盘子(由小到大)从a通过b,搬到c,移动的规则如下:这些圆形盘只能在3个塔问进行移动.一 次只能移动一个盘子,且任何时候都不允许将较大的盘子压在比它小的盘子的上面。*/ //思路:把n-1个盘子移动到b柱子上,然后把第n个盘子移动到c柱子上,最后把n-1个盘子移动到c柱子上 #include <stdio.h> int i = 0; void move(int n,char a,char b) { i++; printf("%d盘子:%c -> %c 第%d次\n",n,a,b,i); } void hannuo(int n,char a,char b,char c) { if(0 == n) { return; } if(1 == n) { i++; printf("%d盘子:%c -> %c 第%d次\n",n,a,c,i); } else { hannuo(n-1,a,c,b); //把n-1个盘子移动到b柱子上 move(n,a,c); //把第n个盘子移动到c柱子上 hannuo(n-1,b,a,c); //把n-1个盘子移动到c柱子上 } } //测试 int main(void) { hannuo(10,'a','b','c'); }
相关文章推荐
- 3行核心代码解决汉诺塔问题(C++递归实现)
- 学习笔记---递归的代码,解决经典的汉诺塔问题
- boj 1343汉诺塔 递归问题 多谢大牛的代码和讲解 我需要多联系类似题目
- 递归解决汉诺塔问题解法java代码
- Java编程用栈来求解汉诺塔问题的代码实例(非递归)
- 两个经典递归问题:菲波那契数列 + 汉诺塔
- 折半查找实现算法二(递归办法)PS:编译后有一个warning,但不影响结果,代码设计上应该还有些问题
- 汉诺塔问题的递归程序
- 最近正准备找工作呢,熟悉下递归算法,做了几个递归的例子包括汉诺塔问题
- 河内之塔(汉诺塔问题--------递归
- boj 1343 汉诺塔 递归问题 谢谢大牛的解答 我需要多联系
- boj 1343 汉诺塔 递归问题 谢谢大牛的解答 我需要多联系
- 汉诺塔问题的递归求解
- STL学习笔记:用非递归的方法实现汉诺塔问题
- 汉诺塔(hanoi)问题C代码实现
- 汉诺塔问题 递归
- 不用递归解决汉诺塔问题
- 汉诺塔问题之递归解法
- 用递归方法求解汉诺塔问题
- php实现汉诺塔问题(递归)