递归求数组之和

来源:互联网 发布:linux ping带源地址 编辑:程序博客网 时间:2024/06/05 16:47

对给定数组求和


对于一个数组求和来说,最简单的莫过于循环求和,现在分析递归求和。
首先,对于一个数组arr[],递归先必须找到基线条件,就是当数组逐渐缩小到第一个时,我们给出的判断。

if (n==0)
return arr[0];

之后再确定递归条件,即n>0时

else if(n>0)
return arr[n-1]+….;

所以综上所述代码如下:

// 用递归计算数组的和#include <stdio.h> int sum (int n, int arr[]) {    if(n>0)        return  arr[n-1]+sum( n-1, arr);        else         return arr[0];}int main (void) {    int n;    int i;    int arr[1000] ;    scanf("%d",&n);    for(i = 0;i < n;i++) {        scanf("%d",&arr[i]);    }    printf("%d",sum(n,arr)-arr[0]); // 递归到1时会多计算一个arr[0],故需要在计算结果的时候减掉一个arr[0]    return 0;}
原创粉丝点击