Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в одну из куч (по своему выбору) два камня или увеличить количество камней в куче в два раза. Игра завершается в тот момент, когда суммарное количество камней в кучах становится не менее 59. Победителем считается игрок, сделавший последний ход, т.е. первым получивший такую позицию, при которой в кучах будет 59 или больше камней. В начальный момент в первой куче было 5 камней, во второй куче – S камней; 1 ≤ S ≤ 53. Задание 19.
Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети. Укажите минимальное значение S, когда такая ситуация возможна.
Задание 20.
Найдите минимальное значение S, при котором у Пети есть выигрышная стратегия, причём одновременно выполняются два условия:
− Петя не может выиграть за один ход;
− Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.
Задание 21
Найдите два значения S, при которых одновременно выполняются два условия:
– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
– у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
Найденные значения запишите в ответе в порядке возрастания.
program zz1;
var n,n1,n2,n3:integer; //задаем переменные
begin
write('введите заданное трехзначное число');
read(n); //вводим с клавиатуры заданное трехзначное число
n1:=n div 100; //находим первую цифру числа
n2:=(n mod 100) div 10; //находим вторую цифру числа
n3:=n mod 10; //находим третью цифру числа
if (n1 mod 2 = 0)and(n2 mod 2 = 0)and(n3 mod 2 = 0) //проверяем, если все цифры четные, то выводим один ответ, если нет, то другой
then write('все цифры числа четные ') else write('некоторые цифры числа не четные');
Объяснение:
var
n, k, s, sa: integer;
begin
k := 0;
s := 0;
sa := 0;
writeln('Введите последовательность, окончание ввода - число 0');
repeat
read(n);
if (n mod 4 = 0) and (n mod 10 = 2) then s := s + n;
if (n <> 0) and (n < 100) then inc(k);
sa := sa + n
until n = 0;
readln;
writeln('Сумма чисел, кратных 4 и заканчивающихся на 2, равна ', s);
writeln('Количество чисел, не больших 100, равно ', k);
writeln('Сумма последовательности равна ', sa);
readln
end.
Объяснение: