program z1;
var a,m:integer;
begin
m:=30000;
repeat
read(a);
if (a <> 0) and (a mod 2 = 0) and (a mod 10 <> 2) and (m > a) then m:=a
until a = 0;
writeln(m)
end.
Объяснение:
m равно максимально возможному чётному числу (согласно условию)
Цикл с пост условием:
ввод числа
проверка числа (верно, когда верны все условия):
не 0 (a <> 0) - не является условием окончания последовательности
число чётное (a mod 2 = 0)
число не оканчивается на 2 (a mod 10 <> 2)
число меньше m (m > a)
если проверка пройдена, то переменной m присваивается значение числа
Проверка условия выхода из цикла (a = 0)
Вывод m
1. карта черная?
2. это чирва (пика)?
- определение старшинства (метод половинного деления, 3 вопроса)
далее на примере 10, со старшими точно также
на каждом шаге делим множество вариантов пополам.
3. карта младше валета?
4. карта старше 8? (остается только два варианта, или 9 или 10)
5. это 9 или 10?
итого 5 вопросов