Вычисление количества чисел со средним значением больше x

у нас есть входная строка, такая как «456,678,4599,87567», нужно найти количество чисел, где среднее число цифр, разделенных запятыми, больше, чем число x. Вот моя рабочая программа для этой проблемы. Хотел узнать, может ли кто-нибудь предложить более оптимизированный код или лучший оптимизированный подход к этой проблеме. Я использую код С#.

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;
    }

person Jay    schedule 25.12.2011    source источник
comment
Пять последовательных вопросов, все более или менее одинаковые.   -  person Abizern    schedule 29.12.2011


Ответы (1)


Вы можете использовать LINQ:

var result = input.Trim('{', '}')
                  .Split(',')
                  .Count(num => num.Average(ch => ch - '0') >= limit);
person dtb    schedule 25.12.2011
comment
Зависит от того, для чего вы оптимизируете. - person dtb; 25.12.2011