趣味算法-Hanoi
2012-01-31 11:57
197 查看
趣味算法-Hanoi:
主要是说明递归的思路。
A B C三个金属棒,有n个盘片,起始时盘片都在n上,要求把所以盘片都移动到C上可以利用B。原则大盘一定要在小盘下面。
思路:
1) 把起始位置上A的n-1个盘子移动到B上, 这时可以通过C,这时可以移动A上的第n个盘子。
2) 把B上的n-1个盘子在都移动到C上,这时可以通过A,这时达到目的,移动完成。
注意:参数的顺序和含义,否则容易造成混淆。
主要是说明递归的思路。
A B C三个金属棒,有n个盘片,起始时盘片都在n上,要求把所以盘片都移动到C上可以利用B。原则大盘一定要在小盘下面。
思路:
1) 把起始位置上A的n-1个盘子移动到B上, 这时可以通过C,这时可以移动A上的第n个盘子。
2) 把B上的n-1个盘子在都移动到C上,这时可以通过A,这时达到目的,移动完成。
注意:参数的顺序和含义,否则容易造成混淆。
#include <stdio.h> void move(int n, char chStart, char chPass, char chEnd ) { if (n == 1) { printf("move %c ---> %c \n", chStart, chEnd); return; } move(n-1, chStart, chEnd, chPass); printf("move %c ---> %c \n", chStart, chEnd); move(n-1, chPass, chStart, chEnd); } int main() { int i = 0; printf("Hanoi start ================\n"); move(3, 'A', 'B', 'C'); scanf("%d", &i); return 0; }
相关文章推荐
- 寒假16:算法训练 Hankson的趣味题
- 趣味算法之怎样订饭最省钱
- acm算法--每日一题c语言1(趣味算式)
- 算法与设计实验1:N阶Hanoi塔问题
- 两本趣味算法书
- 趣味算法:老鼠试毒瓶问题
- 【算法】算法中的趣味数学(三)
- 算法题 趣味算式110
- 趣味算法:生男生女的比例
- 趣味算法——青蛙过河(JAVA)
- 趣味数学-鸡兔同笼算法
- (转)趣味算法:字符串反转的N种方法
- 2015 年 JXNU_ACS 算法组寒假第一次周赛 1008 趣味数学题
- n阶Hanoi塔问题 - 算法设计与分析实验1
- java趣味算法(一)——约瑟夫问题
- 【算法】算法中的趣味数学(三)
- 【算法】算法中的趣味数学(二)
- c/c++ 算法之汉诺塔(河内之塔(Towers of Hanoi))
- 每日趣味算法(2015年9月18日)
- Java数据结构及算法实例:汉诺塔问题 Hanoi