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

编程题:汉诺塔(Lanqiao)

Luz2周前 (08-05)题库86
汉诺塔是一个古老的数学问题:   
有三根杆子 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







答案:若无答案欢迎评论

相关文章

一棵有124个结点的完全二叉树,其叶结点个数是确定的。

一棵有124个结点的完全二叉树,其叶结点个数是确定的。 ~@[](2)答案:TRUE...

无向连通图所有顶点的度之和为偶数。

无向连通图所有顶点的度之和为偶数。 ~@[](1)答案:TRUE...

调用printf函数,%s的格式输出字符串时,字符数组名、字符指针和字符串常量都可以作为输出参数。

调用printf函数,%s的格式输出字符串时,字符数组名、字符指针和字符串常量都可以作为输出参数。 ~@[](1)答案:TRUE...

下面这段代码,对`a`采用八进制数值进行赋值,因此打印输出的结果是`945`。

下面这段代码,对`a`采用八进制数值进行赋值,因此打印输出的结果是`945`。 ~@[](2) ``` #include int main(){ int a,b; a = 029; b = 920; pr...

元组tuple是属于可变对象。

元组tuple是属于可变对象。 ~@[](2)答案:FALSE...

set(x):可以用于生成集合,输入的参数可以是任何组合数据类型,返回结果是一个无重复且有序任意的集合。

set(x):可以用于生成集合,输入的参数可以是任何组合数据类型,返回结果是一个无重复且有序任意的集合。 ~@[](2)答案:FALSE...

发表评论

访客

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