Делим группу чисел от 1 до 16 на 2 группы. 12345678 и 9 10 11 12 13 14 15 16 Спрашиваем больше ли 8 загаданное число? Допустим ответили, что не больше. Тогда берём первую группу чисел и снова делим на 2 группы. 1234 5678. И снова задаём вопрос о величине числа относительно уже 4. Допустим отвечают, что больше. Теперь берём группу чисел "5678" и снова делим её пополам (56 и 78). Проделываем всё то же самое. Остаётся всего два числа и тут уже Не трудно будет узнать число. Суммируя число вопросов получается 4.
// PascalABC.NET 3.4.2, сборка 1790 от 15.09.2018
// Внимание! Если программа не работает, обновите версию!
begin
var a := ArrRandom(ReadInteger('n='), 1, 100); a.Println; // общее
Println('Максимальный четный ', a.Where(t -> t.IsEven).Max); // задача 1
Print('Второй минимальнывй нечетный'); // задача 2
a.Where(t -> t.IsOdd).OrderDescending.Skip(1).Take(1).Println // задача 2
end.
Пример
n= 15
67 8 60 1 96 40 73 25 39 93 64 89 40 69 9
Максимальный четный 96
Второй минимальнывй нечетный 89