【问题标题】:Calculating count of numbers with average greater than x计算平均值大于 x 的数字的计数
【发布时间】:2011-12-25 10:56:06
【问题描述】:

我们有一个输入字符串,例如“456,678,4599,87567” 需要找到逗号分隔数字的数字的平均值大于数字 x 的数字计数。 这是我解决这个问题的工作程序。想知道是否有人可以提出更优化的代码或更好的优化方法来解决这个问题。我正在使用 c# 代码

public static int test(string i2,int limit)
    {
        int count=0;
        int i;
        int len = 0;
        Int32 sum;
        char[] tm={'{','}'};
        i2 = i2.Trim(tm);
        string[] w = i2.Split(',');
        len = w.Length;
        while (len-- > 0)
        {
                i=0;
                sum = 0;

                while (i < w[len].Length)
                {
                    sum += w[len][i] - '0';
                    i++;
                }
                if (sum / i >= limit)
                    count++;
        }
        return count;
    }

【问题讨论】:

  • 五个连续的问题,都差不多。

标签: c# optimization average


【解决方案1】:

您可以使用 LINQ:

var result = input.Trim('{', '}')
                  .Split(',')
                  .Count(num => num.Average(ch => ch - '0') >= limit);

【讨论】:

  • 取决于您的优化目标。
猜你喜欢
  • 2014-01-23
  • 1970-01-01
  • 2016-11-14
  • 1970-01-01
  • 2012-04-11
  • 1970-01-01
  • 2014-04-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多