2015-10-14 54 views
-1

主要方法调用sum并且必须返回数组的总和。该程序旨在查找数组的总和而不使用任何循环。无法检测到错误。使用递归的数组的总和! (错误:StackOverflowError)

使用递归阵列的总和代码:

import java.util.Scanner; 


public class X{ 


public static void main(String[] args){ 
    Scanner sc = new Scanner(System.in); 
    int l1,j,sum=0; 
    try{ 
    System.out.println("Enter length of array: "); 
    l1= sc.nextInt(); 
    int[] s1=new int[l1]; 
    System.out.println("Enter array elements: "); 
    for(j=0;j<l1;j++) 
     s1[j]=sc.nextInt(); 

    sum=sum(s1,0); 
    System.out.println("Sum = "+sum); 

    } 
    finally{ sc.close();} 

} 

public static int sum(int[] a,int i){ 

    if(i>=a.length) 
     return 0; 

    return a[i]+sum(a,i++); 

} 

} 

回答

0

我++回报我的增加之前,所以你与我一样递归。

替换我++与++我

+0

或者只是使用 “我+ 1” 的简单... – Porz

+0

烨...这就是正确的! –