跳出递归的条件是l=arr.length,最后返回值是0,我疑惑的是的到的结果不是0而是数组的和

来源:5-3 递归基础与递归的宏观语意

慕容9198694

2018-05-09

写回答

1回答

liuyubobobo

2018-05-09

抱歉,我没有特别理解你的问题。


// 计算arr[l...n)这个区间内所有数字的和    
private static int sum(int[] arr, int l){    
    if(l == arr.length)    
        return 0;    
    return arr[l] + sum(arr, l + 1);    
}


这段函数的语意是计算arr[l...n) 这个区间的和。其中n == arr.length。当l也等于arr.length的时候,这段函数求的是arr[n, n)这个区间的数字和。这个区间里没有任何元素(注意:是前闭后开的),所以结果为0。

0
2
liuyubobobo
回复
慕容9198694
赞!继续加油!
2018-05-09
共2条回复

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程