我写了一个递归函数来总结数组中的元素。我对以下程序的运行方式感到困惑和困惑。
public class Recursion{
private static int array[] = new int[]{4,6,7,2,3};
public static void main(String argv[]){
int result = sum(0 , 5);
System.out.println("The result is "+result);
}
private static int sum(int number, int index){
if (index==0){
return 0;
}
return number + sum(array[index-1], index-1) ;
}
}
上面的程序返回18作为答案。有人可以在上面的程序中详细说明我出问题的地方。
按照编写,调用树扩展为:
sum(0, 5)
0 + sum(3, 4)
0 + 3 + sum(2, 3)
0 + 3 + 2 + sum(7, 2)
0 + 3 + 2 + 7 + sum(6, 1)
0 + 3 + 2 + 7 + 6 + sum(4, 0)
0 + 3 + 2 + 7 + 6 + 0
sum(4, 0)
满足条件index==0
,则返回0。应返回number
,该值为4。
if (index==0){
return number;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句