java - 计算java中的递归调用次数
问题描述
我编写了一段 Java 代码来在整数列表中查找整数
static int search(int x, List a) {
if (a.isEmpty()) {
throw new IllegalStateException("integer not in list");
}
if (x == a.getHead()) {
return x;
}
return search(x, a.getTail());
}}
但我想要做的不是返回 X 的值,而是返回它在列表中的位置。因此,例如,如果在 x = 5 和 a = 1、2、3、4、7、5 中,那么我想返回 6。但我不知道如何计算递归调用的数量。有什么线索吗?
解决方案
由于您希望它是基于 1 而不是基于 0,因此您可以1 + search(x, a.getTail())
在递归调用中返回(这样您将计算调用该方法的次数,即当前的 ( 1
) 加上,递归地,所有其他)。
然后当你找到元素时,你可以返回 0。
推荐阅读
- python - Python - GUI 应该在单独的文件中吗?使困惑
- kubernetes - etcd 在 kubernetes 中保存的文件示例?
- javascript - 暗模式 - 如何处理自动偏好
- python - 如何删除以下错误:ImportError: cannot import name 'normalize_data_format'
- python - 从谷歌表单的下拉列表中获取值
- machine-learning - 如何打印逗号分隔的输出?
- pointers - 如何使用现有指针将指针分配给记录元素?
- python - 使用 discord.py 循环访问公会成员
- git - 将 VCS 添加到复杂的开发/生产环境的最佳 git 策略
- parsing - AllenNLP:使用 Taskdemo 和 Python 库的不同选区解析