Для того, чтобы выиграть, первый ход выигрывающего игрока должен быть - 2 камня. Тогда останется 5 камней. Он сможет взять от 1 до 3, оставив 4, 3 или 2 камня. И при любом его ходе (от 1 до 3) вы сможете "сподвигнуть" его взять последний (проиграть, одним словом).
Представьте:
Вы взяли 2 камня (5 осталось)Он взял 1 камень (4 осталось)Вы взяли 3 камня (1 осталось) - ему ничего не остается, кроме как взять последний и проиграть
Или :
Вы взяли 2 камня (5 осталось)Он взял 2 камня (3 осталось)Вы взяли 2 камня (1 осталось) - он возьмет последний. Ему придется.
Или:
Вы взяли 2 камня (5 осталось)Он взял 3 камня (2 осталось)Вы взяли 1 камень (1 остался) - он возьмет последний
// PascalABC.NET 3.4.2, сборка 1785 от 06.09.2018
var c, w: integer;
procedure check;
begin
var (a, b) := (Random(0, 20), Random(0, 20));
Print($'{a}*{b}=');
if a * b = ReadInteger then begin inc(c); Println('Правильно') end
else begin inc(w); Println('Неправильно') end;
end;
procedure res;
begin
Println($'Задано вопросов {c+w}');
Println($'Правильных {c}({(c*100)/(c+w):f1}%)');
Println($'Неправильных {w}({(w*100)/(c+w):f1}%)');
end;
begin
var start := true;
while start do
begin
Println('Проверим?(0/1)');
if ReadInteger = 0 then
begin start := false; res; end
else check;
end;
end.
Пример в приложении.
Для того, чтобы выиграть, первый ход выигрывающего игрока должен быть - 2 камня. Тогда останется 5 камней. Он сможет взять от 1 до 3, оставив 4, 3 или 2 камня. И при любом его ходе (от 1 до 3) вы сможете "сподвигнуть" его взять последний (проиграть, одним словом).
Представьте:
Вы взяли 2 камня (5 осталось)Он взял 1 камень (4 осталось)Вы взяли 3 камня (1 осталось) - ему ничего не остается, кроме как взять последний и проигратьИли :
Вы взяли 2 камня (5 осталось)Он взял 2 камня (3 осталось)Вы взяли 2 камня (1 осталось) - он возьмет последний. Ему придется.Или:
Вы взяли 2 камня (5 осталось)Он взял 3 камня (2 осталось)Вы взяли 1 камень (1 остался) - он возьмет последний