[英]Find sum using recursion
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);
}
}
我想檢查數組中是否有兩個數字使用遞歸求和為5。
當我運行它時,沒有結果。
誰能看到問題?
問題在於您沒有檢查遞歸調用返回的內容。
更換
search (array, j++, num - array[i], count + 1);
與
if (search (array, j++, num - array[i], count + 1))
return true;
它應該工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.