2015-10-14 53 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

燁...這就是正確的! –