求助求助,递归问题
函数sum(int a [],int n)的返回值是数组a[]的前几个元素之和?请使用递归的非递归两种方式实现。
------解决方案--------------------
递归:
int sum(int[] a, int n){
if (a.length==1) return a[0];
else return sum( a, n-1) + a[n-1];
}
非递归:
int sum(int[] a, int n){
int sum=0;
for (int i=0; i<n; i++) sum+=a[i];
return sum;
}
------解决方案--------------------
非递归 n为下标从0开始包含n
public static int sum(int a[],int n){
int result = 0;
for(i=0;i<=n;i++){
result+=a[i];
}
return result;
}
递归 n为下标从0开始包含n
public static int sum(int a[],int n){
if(n==0) return a[0];
return sum(a[],n-1)+a[n];
}