Подтвердить что ты не робот

Тестирование, если список целых чисел нечетный или четный

Попытка определить, был ли мой список целых чисел нечетным или четным, мой желаемый результат - это список истинных/или ложных. Можно ли выполнить следующую операцию в списке lst или мне нужно создать цикл? A - выход.

    List <int> lst = new List <int>();
    A = IsOdd(lst);
4b9b3361

Ответ 1

Вы можете попробовать использовать Linq для проецирования списка:

var output = lst.Select(x => x % 2 == 0).ToList();

Это вернет новый список bools таким образом, что {1, 2, 3, 4, 5} будет отображаться на {false, true, false, true, false}.

Ответ 2

Просто используйте модуль

прокрутите список и выполните следующее для каждого элемента

if(num % 2 == 0)
{
  //is even
}
else
{
  //is odd
}

В качестве альтернативы, если вы хотите знать, все ли вы даже можете сделать что-то вроде этого:

bool allAreEven = lst.All(x => x % 2 == 0);

Ответ 3

Там по крайней мере 7 различных способов проверить, является ли число нечетным или четным. Но, если вы читаете эти тесты, вы обнаружите, что в качестве TGH, упомянутого выше, операция модуля является самой быстрой:

if (x % 2 == 0)
               //even number
        else
               //odd number

Вот несколько других методов (с веб-сайта ):

//bitwise operation
if ((x & 1) == 0)
       //even number
else
      //odd number

//bit shifting
if (((x >> 1) << 1) == x)
       //even number
else
       //odd number

//using native library
System.Math.DivRem((long)x, (long)2, out outvalue);
if ( outvalue == 0)
       //even number
else
       //odd number

Ответ 4

        #region even and odd numbers
        for (int x = 0; x <= 50; x = x + 2)
        {

            int y = 1;
            y = y + x;
            if (y < 50)
            {
                Console.WriteLine("Odd number is #{" + x + "} : even number is #{" + y + "} order by Asc");
                Console.ReadKey();
            }
            else
            {
                Console.WriteLine("Odd number is #{" + x + "} : even number is #{0} order by Asc");
                Console.ReadKey();
            }

        }

        //order by desc

        for (int z = 50; z >= 0; z = z - 2)
        {
            int w = z;
            w = w - 1;
            if (w > 0)
            {
                Console.WriteLine("odd number is {" + z + "} : even number is {" + w + "} order by desc");
                Console.ReadKey();
            }
            else
            {
                Console.WriteLine("odd number is {" + z + "} : even number is {0} order by desc");
                Console.ReadKey();
            }
        }