-->
当前位置:首页 > 题库 > 正文内容

编程题:汉诺塔(Lanqiao)

Luz3年前 (2022-08-05)题库513
汉诺塔是一个古老的数学问题:   
有三根杆子 A,B,C。A 杆上有 N 个 (N>1) 穿孔圆盘,盘的尺寸由下到上依次变小。要求按下列规则将所有圆盘移至 C 杆:
每次只能移动一个圆盘
大盘不能叠在小盘上面
提示:可将圆盘临时置于B杆,也可将从A杆移出的圆盘重新移回A杆,但都必须遵循上述两条规则。问:如何移?最少要移动多少次?

### 输入格式:

一行,包含 2 个正整数,一个是 N,表示要移动的盘子数;一个是 M,表示最少移动步数的第 MM 步。

### 输出格式:

共 2 行。

第一行输出格式为:#No: a->b,表示第 M 步骤具体移动方法,其中 No 表示第 M 步移动的盘子的编号(N个盘子从上到下依次编号为 1 到 n),表示第M步是将 No 号盘子从 a 杆移动到 b 杆(a和 b 的取值均为 {A、B、C})。

第 2 行输出一个整数,表示最少移动步数。


### 输入样例:

在这里给出一组输入。例如:

in
3 2


### 输出样例:

在这里给出相应的输出。例如:

out
#2: A->B
7







答案:若无答案欢迎评论

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。