【发布时间】:2019-05-07 19:57:49
【问题描述】:
我正在练习递归,一直在看问题:
"编写一个递归程序,其输入是一个数组 A 和一个数字 x。程序应该打印出 x 在 A 中出现的次数"
这是我的工作解决方案:
public int countOccurrencesOfX_Recursive(int[] array, int x, int index, int occurrences) {
if (index == array.length) {
return occurrences;
}
if (array[index] == x) {
return countOccurrencesOfX_Recursive(array, x, index+1, occurrences+1);
} else {
return countOccurrencesOfX_Recursive(array, x, index+1, occurrences);
}
}
如果不引入更多函数参数,我想不出另一种方法。它看起来不太好,因为它取决于设置为 0 的次数参数,但用户可以输入他们喜欢的任何整数。我的问题是,这被认为是在使用递归时保持计数器的好方法吗?如果不是,那你会怎么做?
【问题讨论】: