簡體   English   中英

使用遞歸求和

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM