// 递归
int sum1(int *a, int length) {
int sum = 0;
if(length == 1) {
return *a;
}
return *a + sum1(a+1,length - 1);
}
// 递推
int sum2(int *a, int length) {
int sum = 0;
if(length == 1) {
return *a;
}
for(int i = 0;i<length;i++)
sum += *(a+i);
return sum;
}
int main () {
int a[] = {1,3,5,6,7,9};
int b[] = {0,2,4,6,8,10};
int c[] = {1,2,3,4,5,5,4,3,2,1};
printf("数组累加和——递归方式:\n");
printf("%d\n", sum1(a, 6));
printf("%d\n", sum1(b, 6));
printf("%d\n", sum1(c, 10));
printf("数组累加和——递推方式:\n");
printf("%d\n", sum2(a, 6));
printf("%d\n", sum2(b, 6));
printf("%d\n", sum2(c, 10));
return 0;
}