如何用递归的方法求出一个数组里偶数下标的和?(java)

publicstaticintcomputeSumAtEven(int[]numbers,intstartIndex,intendIndex){有一个数组而且定义了开始的... public static int computeSumAtEven(int[] numbers, int startIndex, int endIndex){
有一个数组而且定义了开始的下标和最后的下标,怎么用递归的方法算出这个数组的偶数下标元素的和?
展开
 我来答
WM_THU
2015-04-06 · TA获得超过7164个赞
知道大有可为答主
回答量:4285
采纳率:80%
帮助的人:3966万
展开全部
递归思路:
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了。
请题主自己动脑思考一下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1f9c3e2
2015-04-06 · TA获得超过1836个赞
知道小有建树答主
回答量:638
采纳率:100%
帮助的人:402万
展开全部
这个还用得着递归吗?
更多追问追答
追问
要求必须用递归。小弟我也不想用。
追答

我帮你整理了一下他的代码

	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));
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式