m0_47756735 2021-04-16 20:17 采纳率: 0%
浏览 55

蓝桥杯,汉诺塔,只通过了一个案例,不知道自己代码哪里错了

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

  问:如何移?最少要移动多少次?

输入格式

  一行,包含2个正整数,一个是N(N<=15),表示要移动的盘子数;一个是M,表示在最少移动d第M步

输出格式

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

 

 

  • 写回答

4条回答 默认 最新

  • CSDN专家-黄老师 2021-04-17 11:07
    关注

    例如N=5,M=2时,可以分别将最小的2个盘子、中间的2个盘子以及最大的一个盘子分别看作一个整体,这样可以转变为N=3,M=1的情况,共需要移动7次。

    评论

报告相同问题?

悬赏问题

  • ¥15 用VBA将文件夹内的所有表格自动复制到一个表格的sheet1内,
  • ¥15 帮找书和配套代码。。
  • ¥15 使用深度优先搜索所有可能路径
  • ¥20 Ant Design of Vue 的表格使用,根据当前代码,实现以下功能
  • ¥15 C#中模版应用的问题
  • ¥15 Lambda expressions are allowed only at source level 1.8 or above报错,有没有解决办法
  • ¥15 请问有没有哪种软可实现图片里不同背景部分实现剪切分离
  • ¥15 codesys 使用问题
  • ¥15 Postman一直转圈进不去咋办?
  • ¥15 Kb4103712更新无法完成