【问题标题】:How do you find the positive sum of an array that also has negative numbers? [closed]你如何找到也有负数的数组的正和? [关闭]
【发布时间】:2020-05-11 07:47:27
【问题描述】:
public static int PositiveSum(int[] arr)
{   
  int sum = 0;
  for(int i = 0; i > arr.Length; i++)
  {
    sum+=arr[i];
  }
  return sum;
}

例子:

[1,-4,7,12] => 1 + 7 + 12 = 20 

注意:如果sum 没有任何内容,则sum 默认为0。

【问题讨论】:

标签: c#


【解决方案1】:

一种对代码更改最少的方法是在for 循环内添加一个条件,该条件对仅允许添加正数的值求和。

必须改变的是循环中的条件,i > arr.Length 会立即打破循环,即使Length 为0,也必须为i < arr.Length

public static int PositiveSum(int[] arr)
{
  int sum = 0;
  for (int i = 0; i < arr.Length; i++)
  {
    if (arr[i] > 0)
      sum += arr[i];
  }
  return sum;
}

【讨论】:

  • 所以我拿了这个并翻转了大于号,它起作用了!谢谢您的帮助!我是编码新手,所以这些东西对我来说非常棘手!谢谢你的帮助我的朋友!
  • @DeanBoilek,很高兴我能提供帮助,感谢我的好方法是accept the answer
【解决方案2】:

我会尝试过滤 arr 以仅包含正数,然后在该新列表上使用 sum:

public static int PositiveSum(int[] arr)
{
        var pos = arr.Where(x => x > 0);
        int sum = pos.Sum();
        return sum;
}

【讨论】:

    猜你喜欢
    • 2015-11-01
    • 2022-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多