1111000(120 в десятичной) + 100(4 в десятичной) = 104 в десятичной = 1101000 в двоичной.
Var
a:integer;
begin
write('Введите номер месяца: ');
readln(a);
case a of
1: writeln('Январь.31 день');
2: writeln('Февраль.29 дней');
3: writeln('Март.31 день');
4: writeln('Апрель.30 дней');
5: writeln('Май.31 день');
6: writeln('Июнь.30 дней');
7: writeln('Июль.31 день');
8: writeln('Август.31 день');
9: writeln('Сентябрь.30 дней');
10: writeln('Октябрь.31 день');
11: writeln('Ноябрь.30 дней');
12: writeln('Декабрь.31 день');
end;
end.
2.
var
a:integer;
begin
writeln('Введите число: ');
readln(a);
case a of
1: write(a, ' Копейка');
2..4: write(a, ' Копейки');
5..20: write(a, ' Копеек');
end;
end.
Попытка поиска выигрышной стратегии может быть сделана при помощи метода, получившего название "бэкрекинг" (backtracking - обратное прослеживание).
Рассматриваем финальную позицию для второго студента. У него должно оставаться от 1 до 4 карточек, чтобы он мог их все забрать и не оставить карточек первому студенту. Следовательно, у первого студента должно быть ровно 5 карточек. Забрав от 1 до 4 карточек, он оставит второму студенту как раз требуемое количество карточек.
Чтобы у первого студента осталось 5 карточек, второй студент должен иметь от 6 до 9 карточек, т.е. первый студент для этого должен делать выбор из 10 карточек.
И так далее. Выигрышная стратегия второго студента состоит в том, чтобы предоставлять первому студенту количество карточек, кратное 5.
Но исходное количество карточек равно 20; это число кратно 5, следовательно второй студент всегда выигрывает, применяя описанную стратегию (она же - алгоритм).
Ответы в приложенииииииииииииииииии