Вариант решения заданий 19-21 кЕГЭ по информатике.
Для решения потребуется составить программу.
Задача:
Два игрока Петя и Ваня играют в игру. Перед ними куча камней. Петя ходит первым. За ход игрок может добавить в кучу 2 камня или увеличить количество камней в два раза. Игра завершается когда в куче будет не менее 25 камней.
В начале в куче было S камней. 1<= S <=24
1.1) При каких S Петя выиграет первым ходом?
1.2) При каких S Ваня выиграет первым ходом?
2) Назовите 3 значения S при которых Петя выиграет 2м ходом
3) При каком s Ваня выиграет первым или вторым ходом
Задача:
Два игрока Петя и Ваня играют в игру. Перед ними куча камней. Петя ходит первым. За ход игрок может добавить в кучу 2 камня или увеличить количество камней в два раза. Игра завершается когда в куче будет не менее 25 камней.
В начале в куче было S камней. 1<= S <=24
1.1) При каких S Петя выиграет первым ходом?
1.2) При каких S Ваня выиграет первым ходом?
2) Назовите 3 значения S при которых Петя выиграет 2м ходом
3) При каком s Ваня выиграет первым или вторым ходом
Задача:
Два игрока Петя и Ваня играют в игру. Перед ними куча камней. Петя ходит первым. За ход игрок может добавить в кучу 2 камня или увеличить количество камней в два раза. Игра завершается когда в куче будет не менее 25 камней.
В начале в куче было S камней. 1<= S <=24
1.1) При каких S Петя выиграет первым ходом?
1.2) При каких S Ваня выиграет первым ходом?
2) Назовите 3 значения S при которых Петя выиграет 2м ходом
3) При каком s Ваня выиграет первым или вторым ходом
Решение на языке Pascal:
var
a:array[1..24]of integer;
i,j:integer;
begin
for i:=1 to 24 do
if i*2>=25 then
a[i]:=1
else
a[i]:=0;
for j:=1 to 60 do
for i:=1 to 24 do
if a[i]=0 then
if (a[i+2]>0) and (a[i*2]>0) then
a[i]:= max(a[i+2],a[i*2])*-1
else
if (a[i+2]<0) or (a[i*2]<0) then
a[i]:=abs(min(a[i+2], a[i*2])) +1;
for i:=1 to 24 do
if a[i] = 1 then //вписываем кто на каком ходе выиграет. (с "-" выигрывает 2й игрок)
writeln(i);
end.