2013-01-05 264 views
-3

我明白爲什麼我的最後兩行不起作用,但我似乎無法想到另一種方式來做到這一點。任何幫助?Java遞歸問題

public static void main (String[]args) 
    { 
     int[] a = {0,1,2,4}; 
     System.out.println(isSumOf(a,6)); 
    } 
    public static boolean isSumOf(int[] s, int n) 
    { 
     int L=s.length-1; 
     if(n==0) { 
      return true; 
     } 

     isSumOf(s[L-1],n-s[L-1]); 
     isSumOf(s[L-2],n-s[L-2]); 
    } 
+6

此代碼不能編譯,retrun缺少 – Ilya

+0

如果你有一個遞歸的問題,嘗試自助小組或冥想。 – Bohemian

+0

方法isSumOf(int [],int)不適用於參數(int,int) –

回答

1

假設您希望isSumOf()返回true,如果數組中所有元素的和等於n; 下面將正常工作

public static boolean isSumOf(int[] s, int n) 
    { 
     int sum = 0; 
     for (int value : s) 
     { 
      sum += value; 
     } 
     return sum == n; 


    }