【问题标题】:Find the sum of integers in a list (of type integers) recursively (java)递归查找列表(整数类型)中的整数之和(java)
【发布时间】:2020-07-17 00:30:51
【问题描述】:

我正在尝试编写一个返回整数类型列表中整数和的方法。这是我目前所拥有的,

    public int sum (List <Integer> list) {
    if (list.isEmpty()) {
        return 0;
    }
    else {
        return sum(list.subList(0, list.size()-1));
    }
}

但是,这似乎不起作用,代码有什么问题吗?任何帮助表示赞赏。

【问题讨论】:

  • 您将总和存储在哪里?您只是在减少列表,而不是计算列表中每个元素的总和。
  • @Ramesh 我认为我不需要存储总和,是吗?
  • 你不一定要使用另一个变量...现在你的代码甚至没有添加任何东西。

标签: java list recursion


【解决方案1】:
public int sum (List <Integer> list) {
    if (list.isEmpty()) {
        return 0;
    }
    else {
        return list.get(list.size()-1) + sum(list.subList(0, list.size()-1));
    }
}

我还需要对列表的最后一个值求和,这就是

return list.get(list.size()-1) + sum(list.subList(0, list.size()-1)); 

达到。

【讨论】:

    【解决方案2】:

    你写了 sum([1,2,3,4]) = sum([1,2,3]) 而实际上它等于 (sum([1,2,3]) + 4)。

    您的代码递归地计算列表前缀的总和,但不添加最后一个元素的值。

    【讨论】:

    • 谢谢,根据你的解释我已经明白了。
    猜你喜欢
    • 2021-04-08
    • 1970-01-01
    • 2018-05-11
    • 2021-04-17
    • 2019-12-18
    • 1970-01-01
    • 1970-01-01
    • 2013-12-06
    • 2019-01-12
    相关资源
    最近更新 更多