Программа написана совершенно правильно. Единственное, что могу предположить - это несоответствие нумерации массива у человека и компьютера. Люди привыкли нумеровать от единицы, а значит в массиве из пяти элементов три с нечетными номерами и два с четными. В программах нумерация массива обычно от нуля, т.е. в массиве из пяти элементов три четных и два нечетных. С точки зрения компьютера программа выдает верный результат. Для получения результата с точки зрения человека нужно строку
if ((A[i] > 0) && ( i%2 == 0))
заменить на
if ((A[i] > 0) && ( i%2 == 1))
В двоичном коде бит может кодировать только два значения (допустим, "да" или "нет", или, по условию задачи - первые числа из требуемых рядов: 1 и 2 или 0 и 1). Два бита кодируют 4 значения, три бита - 8. И так далее. Общая формула выглядит так: N=2^m Где N - количество независимых кодируемых значений, m - количество разрядов двоичного кодирования.
Имеем в первом варианте 32 значения, во втором 33. Подставляем данные: 2^5=32, то есть 32 значения (от 1 до 32) можно закодировать с помощью 5 бит. Зато для 33 значений ёмкости пяти бит уже не хватит. Значит, ответ неверный. Проверяем: log2(33)=5,04439 (по таблице логарифмов с основанием 2), округляем вверх до целого, получаем 6.
на самом деле даже если не знать что такое шифр цезаря, то можно догадаться что в задаче на тему фиксиков и ответ будет на тему фиксиков.
так что в принципе единственный логичный ответ это а) фиксик.
ну и проверить можно узнав что такое шифр цезаря. В общем это такой метод кодирования, когда каждую букву исходного слова сдвигают в алфавите на определенное количество позиций и вместо нее записывают ту букву которая получилась. так что для проверки надо лишь проверить все варианты и посмотреть можно ли из них получить то что дано в условии задачи при смещении на одно и тоже количество позиций.
итак фиксик. от буквы ф до ё 18 символов, от и до ъ 18, от к до ь тоже... и т.д. в общем подходит.
ответ а) фиксик
Допустим, 1 игрок загадал 1
2 игрок называет 128, получает ответ "меньше". Это первый бит.
Он называет 64 (это второй бит), потом 32, потом 16, потом 8, потом 4, потом 2, потом 1.
Всего он получает 8 бит информации.
Предположим, что все студенты получают только одну оценку, например, 3.
Тогда сообщение "Студент получил 3" несет 0 бит информации, потому что и без этого сообщения ясно, что он может получить только 3, и ничего больше.
Допустим, студент может получить одну из двух оценок, например, 3 или 4.
Тогда сообщение "Студент получил 3" несет 1 бит информации, их можно условно обозначить "0", если оценка 3 и "1", если 4.
Если 4 разных оценки, 4 = 2^2, то сообщение несет 2 бита информации. Если бы разных оценок было 8, то было бы 3 бита.