recursion - 递归中的“主要方法”和“辅助方法”是什么意思?
问题描述
我得到了这个任务:
private int hex2Dec(String string) // helper method
private int hex2Dec(String string, int low, int high) // main method
这意味着递归方法应如下所示:
private int hex2Dec(String string, int low, int high) {
... some code ....
hex2Dec(string);
}
private int hex2Dec(String string)
或者这意味着递归方法应该如下所示:
private int hex2Dec(String string) {
... some code ....
hex2Dec(string, 0, string.length()-1);
}
private int hex2Dec(String string, int low, int high)
“主方法”和“辅助方法”在递归中是什么意思?
在 Daniel Liang 的《Java 编程和数据结构简介》第 11 版全球版第 751 页(第 18 章)中,他将辅助方法描述为接收附加参数的第二种方法。
但在这个任务中,它是一个参数较少的任务,称为“辅助方法”。这让我很困惑。
解决方案
这些不是特定于递归的术语。
但是,在这种情况下,“主要功能”可能是他们期望实际递归发生的地方。
递归函数经常使用辅助函数来简化初始调用。通常,就像这里的情况一样,递归调用需要额外的信息(如low
和high
)来操作,但您不希望用户需要担心自己传递起始值。通常让辅助函数使用额外参数的初始值调用递归函数。
所以在这种情况下,他们可能希望助手调用具有值的递归函数low
and high
,然后用户可以调用更简单的助手而不是递归函数。
推荐阅读
- javascript - 单击响应式导航栏中的锚链接后,将删除事件侦听器
- apache-kafka - Kafka:在 Kafka 驱动的架构中使用请求/响应模式
- gradle - 仅使用 gradle 创建依赖项 jar
- karate - 空手道是否使用解释器或编译器来运行基于功能文件的代码?
- c - 如何打印这个图案?谁能解释逻辑?
- android - 是否可以通过 MTP 模式安装 Android 应用 (APK)?
- javascript - React 不从 useEffect 中的 fetch 渲染数据
- maven - 如何查找 PIT 运行的测试列表
- flutter - 缓存的用户位置颤振空安全性错误
- python - 如何水平而不是垂直打印多个 ASCII 艺术图形?