В нечетных числах массива найти количество разрядов, равных нулю и единице - C++
Формулировка задачи:
Помогите с решением, не оставляйте без внимания)
Задание: в одномерном массиве чисел целого типа (32 бит) выполнить следующую двоичную обработку
И сама задача:
В нечетных числах массива найти количество разрядов, равных нулю и единице.
Для С++
Решение задачи: «В нечетных числах массива найти количество разрядов, равных нулю и единице»
textual
Листинг программы
int main()
{
int n = 5;
int e = 0, z = 0;
for (int i = n; i > 0; i /= 2)
{
if (i % 2 == 0)
z++;
else
e++;
}
printf("1 = %d 0 = %d\n", e, z);
system("pause");
return 0;
}
Объяснение кода листинга программы
В этом коде выполняется следующая последовательность действий:
- В переменной
nхранится количество элементов в массиве. - В переменной
eхранится количество разрядов, равных нулю. - В переменной
zхранится количество разрядов, равных единице. - Происходит цикл по нечетным числам от
nдо 1 с шагом 2 в переменнойi. - Внутри цикла проверяется, является ли текущее число четным (i % 2 == 0).
- Если число четное, то к переменной
zприбавляется единица. - Если число нечетное, то к переменной
eприбавляется единица. - После окончания цикла выводится сообщение с количеством разрядов, равных нулю и единице.
- В конце программы выводится сообщение о завершении работы программы.