如果使用递归,则需要考虑如何进行递归执行的开始以及终止条件。
(1)首先,如果数组元素个数为0,那么和为0。
(2)如果数组元素个数为n,那么先求出前 n - 1 个元素之和,再加上 arr[n - 1] 即可。此时可以完成递归功能。
具体实现如下:
#include <iostream>
int sum = 0;
int GetSum(int arr[], int len)
{
if (len == 0)
return 0;
return arr[len - 1] + GetSum(arr, len - 1);
}
int main(int argc, const char * argv[]) {
int arr[] = {1,3,5,7,9,2,4,6,8,10};
int len = sizeof(arr)/sizeof(arr[0]);
int result = GetSum(arr, len);
printf("%d\n", result);
return 0;
}