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
}
目录
相关文章
|
BI
7-6 sdut-C语言实验-最长上升子序列
7-6 sdut-C语言实验-最长上升子序列
166 1
|
网络协议 网络架构
TCP IP协议簇:网络通信的基石
【4月更文挑战第20天】
427 7
7-8 sdut-C语言实验-取数字问题
7-8 sdut-C语言实验-取数字问题
96 2
|
C语言
7-7 sdut-C语言实验-神奇的函数
7-7 sdut-C语言实验-神奇的函数
84 0
|
机器学习/深度学习
7-6 sdut-C语言实验-第X大的数
7-6 sdut-C语言实验-第X大的数
91 0
|
8月前
|
数据可视化 Linux 应用服务中间件
Centos7.9安装phpldapadmin
Centos7.9安装phpldapadmin
239 15
|
BI
7-7 sdut-C语言实验-上升子序列
7-7 sdut-C语言实验-上升子序列
139 0
7-5 sdut-C语言实验-最长公共子序列
7-5 sdut-C语言实验-最长公共子序列
212 0
7-4 sdut-C语言实验-区间覆盖问题
7-4 sdut-C语言实验-区间覆盖问题
108 2
7-1 sdut-C语言实验-递归的函数
7-1 sdut-C语言实验-递归的函数
111 2