java - 使用递归求和

标签 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);
   }
}

我想使用递归检查数组中是否有两个数字之和为 5。

当我运行它时没有结果。

有人能看出问题吗?

最佳答案

问题在于您没有检查递归调用返回的内容。

替换

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

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

它应该可以工作。

关于java - 使用递归求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15115579/

相关文章:

java - 如何让 android 相机预览保持专注?

java - 将 DLL 添加到 NetBeans 项目

java - 关于java递归创建字符串组合

javascript - 如何让我的复选框值和选项值相加并将总和输入到我的文本区域?

r - 如何使用 data.table 根据条件计算列总和?

java - 我不知道如何在停止时显示计时器

java - 加密函数每次返回不同的输出

java - 我如何获得在 Java 中有重复的所有组合(递归)?

javascript - 解析 Freebase 主题 HTTP API - JSON 和 Javascript

mysql - SQL SUM 具有活跃 child 的 parent 数量