2013-01-05 261 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; 


    }