汉诺塔(hanoi)
来源:互联网 发布:java工程师有前途吗 编辑:程序博客网 时间:2024/06/16 18:31
问题描述:
有三根柱子,第一根柱子上有n个盘子,借助第二根柱子,将第一根的所有盘子搬到第三根,在搬运过程中遵循每次只能搬一个,且大盘子在小盘子之下的原则。
解决方案:
首先把柱子标记为ABC, 由A搬至C,在只有一个盘子时,直接将它搬至C,当有两个盘子时,就将B作为辅助柱。如果盘子数超过二时,首先把A上边的n-1个盘子借助C,从A搬到B,再将第n个盘子搬到C,再借助A,将B上的n-1盘子搬到C。
代码描述:
#include <stdio.h>void hanoi(int n, char A, char B, char C) {if (n == 1) {printf("Move sheet %d from %c to %c\n", n, A, C);}else {hanoi(n - 1, A, C, B);printf("Move sheet %d from %c to %c\n", n, A, C);hanoi(n - 1, B, A, C);}}int main() {//假设盘子数为3个hanoi(3, 'A', 'B', 'C');getchar();return 0;}
运行结果:
0 0
- 汉诺塔Hanoi
- 汉诺塔(hanoi)
- Hanoi--汉诺塔问题
- Hanoi汉诺塔问题
- C#图形界面汉诺塔Hanoi
- 汉诺塔 Hanoi 递归实现
- 经典问题-汉诺塔(hanoi)
- 汉诺塔(hanoi)
- Hanoi汉诺塔 问题
- Hanoi(汉诺塔问题)
- 汉诺塔(Hanoi Tower)
- Hanoi(汉诺塔)问题。
- 汉诺塔 Tower of Hanoi
- 汉诺塔 hanoi 如此简单
- Hanoi汉诺塔问题
- Hanoi(汉诺塔)问题
- hanoi(汉诺塔)问题
- 汉诺塔 hanoi 递归
- JavaScript语言解释器的设计与实现
- 三款开源科学计算软件平台
- 构建基于Javascript的移动CMS——生成博客(一)
- PCI热插拔
- 根据IP获取地址
- 汉诺塔(hanoi)
- uva10537
- UVA 10050(暑期-线性表-H- Hartals)
- 启动D盘TTplayer目录下的文件
- Listview控件使用技巧大汇总 连载(二)
- Android下连续双击返回按键退出应用实现
- Java集合的Set、List、Map异同分析
- matlab学习中遇到的一些语句(记录下来)
- MFC、WTL、WPF、wxWidgets、Qt、GTK的对比