好吧,所以我一直在尝试用 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
这是一个简化版本:
public static double min(double[] elements, int index) {
if (index == elements.length - 1) {
return elements[index];
}
double val = min(elements, index + 1);
if (elements[index] < val)
return elements[index];
else
return val;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)