如何用递归的方法求出一个数组里偶数下标的和?(java)
publicstaticintcomputeSumAtEven(int[]numbers,intstartIndex,intendIndex){有一个数组而且定义了开始的...
public static int computeSumAtEven(int[] numbers, int startIndex, int endIndex){
有一个数组而且定义了开始的下标和最后的下标,怎么用递归的方法算出这个数组的偶数下标元素的和? 展开
有一个数组而且定义了开始的下标和最后的下标,怎么用递归的方法算出这个数组的偶数下标元素的和? 展开
2个回答
展开全部
递归思路:
if (startIndex % 2 == 0)
return numbers[startIndex] + computeSumAtEven(numbers, startIndex + 1, endIndex)
else
return computeSumAtEven(numbers, startIndex + 1, endIndex)
自己补齐base case
if (startIndex % 2 == 0)
return numbers[startIndex] + computeSumAtEven(numbers, startIndex + 1, endIndex)
else
return computeSumAtEven(numbers, startIndex + 1, endIndex)
自己补齐base case
追问
那endIndex 不需要参与在里面吗?还有base case 有哪些?需要定义一个新的数值吗?
追答
所谓base case就是指不用递归就知道结果或者无法递归的情形。这里就涉及到endIndex了。
请题主自己动脑思考一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个还用得着递归吗?
更多追问追答
追问
要求必须用递归。小弟我也不想用。
追答
我帮你整理了一下他的代码
public static int computeSumAtEven(int[] numbers, int startIndex, int endIndex){
if (endIndex<numbers.length&& startIndex<=endIndex){
if (startIndex % 2 == 0)
return numbers[startIndex] + computeSumAtEven(numbers, startIndex + 1, endIndex);
else
return computeSumAtEven(numbers, startIndex + 1, endIndex);
}else{
return 0;
}
}
//这里是测试
public static void main(String[] args) {
int[] nums={1,2,3,4,5,6,7,8,9};
System.out.println(computeSumAtEven(nums, 1, 5));
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询