上一主题下一主题
推送至APP |
级别: 总版主
UID: 2
精华: 1
发帖: 12967
威望: 12978 点
铜币: 1126817 枚
贡献值: 0 点
注册时间: 2022-03-21
最后登录: 2024-02-18
0楼  发表于: 2023-12-16 17:37

汉诺塔动态演示程序

  汉诺塔问题是一个经典的递归问题。它给出的圆盘移动条件是:一次仅能移动一个盘,且不允许大盘放在小盘的上面[1]。
  然后要处理输入数据越界的情况,因为盘子个数过多,将很难实现,因此这里以0n10为界限,越界的线处理。代码如下:
  第三步:将“上面的N-1个圆盘”看成一个整体,为了解决N个圆盘的汉诺塔,可以按下面图示的方式迳行操作:
  算法演示思想[10]:设要解决的的汉诺塔共有N个圆盘,对A杆上的全部N个圆盘从小到大顺序编号,最小的圆盘为1号,次之为2号,依次类推,则最下面的圆盘的编号为N。
  第一步:先将问题简化。假设A杆上只有一个圆盘,即汉诺塔只有一层N1,则只要将1号盘从A杆上移到B杆上即可。
  第二步:对於一个有N(N>1)个圆盘的汉诺塔,将N个圆盘分成两部分:上面的N-1个圆盘和最下面的N号圆盘。
☛ 1024社區区
上一主题下一主题
 电影2090 » 娱乐动态