好的,所以我一直在尝试用Java进行递归,我可以完成简单的任务,例如求和,求逆等。但是我一直在努力进行以下练习:
我正在尝试使用递归查找数组中的最小数目,但始终得到0.0的答案。
我对递归的理解是,我需要增加一个元素,然后提供一个将结束递归的基本情况。我认为我在必须返回值以及何时最好调用递归方法时感到很困惑。
这是我到目前为止的内容:
public static double findMin(double[] numbers, int startIndex, int endIndex) {
double min;
int currentIndex = startIndex++;
if (startIndex == endIndex)
return numbers[startIndex];
else {
min = numbers[startIndex];
if (min > numbers[currentIndex]) {
min = numbers[currentIndex];
findMin(numbers, currentIndex, endIndex);
}
return min;
}
} //findMin
最佳答案
此代码中存在各种问题,包括:
findMin
调用的结果。 startIndex
时findMin
都将相同,因为在currentIndex
递增之前将startIndex
设置为startIndex
的值。