栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

河内递归塔Java

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

河内递归塔Java

Tower of Hanoy
以这种方式解决问题,无非是定义如何完成工作的策略。和你的代码:

    playHanoi(n-1, from, to, other);    System.out.printf("Move one disk from pole %s to pole %s n ", from, to);    playHanoi(n-1, other, from, to);

基本上将您的策略​​定义为喜欢以下情况,

  1. 将 _ n-1个 磁盘从 _ “从” (源塔)移动到 _ “其他”_ (中间塔)。
  2. 然后将第 _ n 个磁盘从 _ “从” (源塔)移动到 _ “到”_ (目标塔)。
  3. 最后将 _ n-1个 磁盘从 _ “其他” (中间塔)移动到 _ “到”_ (目标塔)。

prinf
基本上是使用 _ 2_ 档时。

现在,如果您编写这样的代码:

    playHanoi(n-1, from, to, other);    playHanoi(n-1, other, from, to);    System.out.printf("Move one disk from pole %s to pole %s n ", from, to);

然后,您基本上在做:

  1. 将 _ n-1个 磁盘从 _ “从” (源塔)移动到 _ “其他”_ (中间塔)。

  2. 然后将 _ n-1个 磁盘从 _ “其他” (中间塔)移动到 _ “到”_ (目标塔)。

  3. 最后,将第 _ n 个磁盘从 _ “从” (源塔)移动到 _ “到”_ (目标塔)。

在这种策略中,在做后 _ 2 次步骤(移动所有 n-1个 从磁盘 _ “其他” ,以 _ “至” ), _3
第三步变为无效(移动 _ ñ 从第磁盘 _ “从” 到 _ “至”_ )!因为

Tower ofHanoy
您不能将较大的磁盘放在较小的磁盘上!

因此,选择第二种选择(策略)会导致您采用无效策略,这就是为什么您不能这样做!



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/453283.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号