使用递归查找总和

时间:2013-02-27 15:14:05

标签: java recursion sum

class fs {

    int lenArray;

    void check (int [ ] array) {

        lenArray = array.length;

        for (int i = 0; i < lenArray; i++)
        {
            if (search (array, i, 5, 0))
            {
                System.out.println ("We found it!!!");
                return;
            }                
        }
    }

    boolean search (int [ ] array, int i, int num, int count) {

        if (count == 2)
            if (num == 0)
                return true;
            else
                return false;

        int j = i;

        while (j < lenArray)
        {
           search (array, j++, num - array[i], count + 1);
        }
        return false;
    }
}

class findSum {
   public static void main (String [ ] args) {

       int A[ ]= {1, 2, 3, 4};

       fs obj = new fs ( );
       obj.check (A);
   }
}

我想检查一个数组中是否有两个使用递归求和的数字。

当我跑它时没有结果。

有人能看到问题吗?

1 个答案:

答案 0 :(得分:1)

问题是你没有检查你的递归​​调用返回的内容。

替换

search (array, j++, num - array[i], count + 1);

if (search (array, j++, num - array[i], count + 1))
  return true;

它应该有用。