递归B 汉诺塔
来源:互联网 发布:mysql更新一条数据 编辑:程序博客网 时间:2024/06/06 01:02
Problem Description
汉诺塔(又称河内塔)问题是印度的一个古老的传说。
开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒A、B和C,A上面套着n个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从A棒搬到C棒上,规定可利用中间的一根B棒作为帮助,但每次只能搬一个,而且大的不能放在小的上面。
僧侣们搬得汗流满面,可惜当n很大时这辈子恐怕就很搬完了。
聪明的你还有计算机帮你完成,你能写一个程序帮助僧侣们完成这辈子的夙愿吗?
Input
输入金片的个数n。这里的n<=10。
Output
输出搬动金片的全过程。格式见样例。
Example Input
2
Example Output
Move disk 1 from A to B
Move disk 2 from A to C
Move disk 1 from B to C
#include <stdio.h>#include <stdlib.h>void move(int n,char A,char B,char C){ if(n==1) printf("Move disk %d from %c to %c\n",n,A,C); else { move(n-1,A,C,B); //拆成两部分,上面先把n-1个当做整体,下一步搬最后那个最大的。 printf("Move disk %d from %c to %c\n",n,A,C); move(n-1,B,A,C); }}int main(){ int n;scanf("%d",&n); move(n,'A','B','C'); return 0;}
阅读全文
0 0
- 递归B 汉诺塔
- 递归递推 B
- 递推递归练习 B
- 递推递归练习B
- 递推递归练习B
- 《递归递推练习》B
- 递归递推练习 B
- 递归递推B-王二小切饼
- 递推递归-B-王小二切饼
- 递推递归-B-王小二切饼
- 递推递归--B王小二切饼
- 递归专练B 数值分解(伪递归)
- 函数递归之a!+b!+c!
- 【递归】【3月周赛1】【Problem B】
- codeforces 426 B. Sereja and Mirroring(递归)
- codeforces 676B Pyramid of Glasses 递归
- 实验10 问题 B: 递归求阶乘
- 递归-B-变位字:排列所有组合
- 暗影精灵装双系统,win 10 下 装一个 win7 ,双硬盘(本文全程文字,没有图片)
- 超级Log工具,能显示你的文件名、方法、行数并且可以点击到那一行
- 智能指针(STL)
- tgz 压缩
- 在Linux系统安装solr
- 递归B 汉诺塔
- 递归C 快速排序
- [JAVA][MD5]关于MD5的实现和JAVA生成MD5
- 端口被占用情况
- Ubuntu系统如何安装arm-linux-gnueabi交叉编译工具?
- c++primar 6.3.3 返回数组指针
- 递归D 二分查找
- 递推A 养兔子
- MTKAndroid添加驱动模块