7-2 sdut-C语言实验-汉诺塔

简介: 7-2 sdut-C语言实验-汉诺塔

7-2 sdut-C语言实验-汉诺塔


分数 20


全屏浏览


切换布局


作者 马新娟


单位 山东理工大学


汉诺塔(又称河内塔)问题是印度的一个古老的传说。


开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒A、B和C,A上面套着n个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从A棒搬到C棒上,规定可利用中间的一根B棒作为帮助,但每次只能搬一个,而且大的不能放在小的上面。


僧侣们搬得汗流满面,可惜当n很大时这辈子恐怕就很搬完了。


聪明的你还有计算机帮你完成,你能写一个程序帮助僧侣们完成这辈子的夙愿吗?


###输入格式:

输入金片的个数n (1 <= n <= 10)。


###输出格式:

输出搬动金片的全过程。格式见样例。


###输入样例:

2

###输出样例:

1. Move disk 1 from A to B
2. Move disk 2 from A to C
3. Move disk 1 from B to C


代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

栈限制

8192 KB

1#include<stdio.h>
#include<stdlib.h>
void hannuota(int n, char s, char m, char e){
  if(n == 1) 
    printf("Move disk %d from %c to %c\n",n, s, e);
  else{
    hannuota(n - 1, s, e, m);
    printf("Move disk %d from %c to %c\n", n, s, e);
    hannuota(n - 1, m, s, e);
  }
}
int main()
{
  int n;
  scanf("%d", &n);
  hannuota(n, 'A', 'B', 'C');
  return 0;//max
}
目录
相关文章
|
3月前
7-2 sdut-C语言实验-删数问题(贪心法二)
7-2 sdut-C语言实验-删数问题(贪心法二)
25 2
|
3月前
|
BI
7-7 sdut-C语言实验-上升子序列
7-7 sdut-C语言实验-上升子序列
20 0
|
3月前
7-5 sdut-C语言实验-最少拦截系统
7-5 sdut-C语言实验-最少拦截系统
27 6
|
3月前
7-10 sdut-C语言实验-走迷宫
7-10 sdut-C语言实验-走迷宫
19 2
|
3月前
7-4 sdut-C语言实验-区间覆盖问题
7-4 sdut-C语言实验-区间覆盖问题
24 2
|
3月前
|
算法
7-2 sdut-C语言实验-数字三角形问题
7-2 sdut-C语言实验-数字三角形问题
15 1
|
3月前
|
人工智能 C语言
7-5 sdut -C语言实验-节约用电
7-5 sdut -C语言实验-节约用电
28 3
|
3月前
7-2 sdut-C语言实验-删数问题
7-2 sdut-C语言实验-删数问题
21 2
|
3月前
|
机器学习/深度学习 安全
7-3 sdut-C语言实验-小鑫去爬山
7-3 sdut-C语言实验-小鑫去爬山
23 2
|
3月前
7-1 sdut-C语言实验-递归的函数
7-1 sdut-C语言实验-递归的函数
20 2