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);
}
}
我想检查一个数组中是否有两个使用递归求和的数字。
当我跑它时没有结果。
有人能看到问题吗?
答案 0 :(得分:1)
问题是你没有检查你的递归调用返回的内容。
替换
search (array, j++, num - array[i], count + 1);
与
if (search (array, j++, num - array[i], count + 1))
return true;
它应该有用。