gpt4 book ai didi

java - 递归函数在数组中添加元素

转载 作者:行者123 更新时间:2023-12-01 18:16:12 25 4
gpt4 key购买 nike

我编写了一个递归函数来对数组中的元素求和。我对以下程序的行为感到困惑和困惑。

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;
}

关于java - 递归函数在数组中添加元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29370080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com