- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
关闭。这个问题需要details or clarity .它目前不接受答案。
想改进这个问题?通过 editing this post 添加详细信息并澄清问题.
7年前关闭。
Improve this question
求解汉诺塔的简单递归代码:
public static void hanoi(char A, char B, char C, int n) {
if(n>0) {
hanoi(A,C,B,n-1);
System.ouit.println("moving from " + A + " to " + B);
hanoi(C,B,A,n-1);
}
}
最佳答案
想想对 hanoi
的调用功能为“使用主轴 C 作为备用,将整堆 n
磁盘从主轴 A 移动到主轴 B”。如果您愿意假设它可以完成,请将其概念化为函数调用。几分钟后应该很清楚,这可以通过移动桩来完成以上底部磁盘,具有 n-1
磁盘,从主轴 A 到备用主轴 C,将底部磁盘移动到其目标主轴 B,然后将备用磁盘上的堆从 C 移动到 B。由于假设移动堆是函数调用,因此堆移动是通过底部磁盘移动之前和之后的递归调用来完成。剩下的唯一问题是识别何时没有更多工作要做。这是由您的n
完成的。计数器,它表示要移动的堆中磁盘的数量。当它为零时,不需要任何操作。
汉诺塔是“信仰的递归飞跃”的一个很好的例子,在这个例子中,您假设通过函数调用解决方案是可能的,然后只需将该函数应用于一个或多个子问题 + 一个微不足道的案例。
关于java - 汉诺塔 - 简单算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26197745/
这是我正在做的作业。我创建了 2 个类来玩汉诺塔。第一个基本上是运行实际游戏类的运行者。 import java.util.Scanner; class TowersRunner { publ
这是我为汉诺塔问题编写的 Python 代码,其中塔必须从左桩转移到中间桩,使用右桩作为备用: def hanoi(n, origin = "1", destination = "2", spare
我正在使用 jQuery 标签!库创建用户“技能”输入表单。我认为这将是一个非常快速和简单的设置,就像大多数 jQuery 库一样,但是我在这个方面遇到了很多麻烦。我尝试按照下面示例中的源代码进行操作
我如何(如果可能)使用 C++11 可变参数编程来定义一系列 vector是在一个函数体内,(或者换句话说,一系列 N 维数组,递减 N 直到 0),就像下面的变量一样? vector>> v; ve
我编写了一个 Ansible playbook,它需要运行它的作业编号作为其参数之一,以便我将对该作业的引用添加到我维护的数据库中。如何获取 Tower 模板以将其传递给剧本? 这是我当前的解决方案,
默认情况下,android 会存储最后 200 个 wifi 连接和 50 个单元位置详细信息。 我使用 WifiManager 中的 getConfiguredNetworks() 获得了 wifi
如何(如果可能)使用 c++11 可变参数编程来定义一系列 vector 's 在函数体中,(或者换句话说,N 维数组的序列,N 's 递减直到 0),就像下面的变量? vector>> v; vec
我们正在 Tensorflow 上运行多 GPU 作业,并评估从基于队列的模型(使用 string_input_producer 接口(interface))到新的 Tensorflow 数据集 AP
我有一个由另一个进程启动的 Ansible 作业。现在我需要检查 Ansible Tower 中当前正在运行的作业的状态。 我可以使用 REST API 使用 /jobs/{id} 跟踪状态是否正在运
我正在使用一个非常棒的插件,名为 jQuery Tagit在我当前项目的开发中。 一切都进行得很顺利(令人怀疑),直到我尝试添加自己的一小部分 jQuery。我的目标是让最终用户可以选择使用按钮添加标
我是一名优秀的程序员,十分优秀!