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

да ... Вот так! –

Смежные вопросы