Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может а) добавить в кучу один камень или
б) увеличить количество камней в куче в два раза.
Игра завершается в тот момент, когда количество камней в куче становится не менее 24. Если при этом в куче оказалось не более 38 камней, то победителем считается игрок, сделавший последний ход. В противном случае победителем становится его противник. Например, если в куче был 21 камень и Петя удвоит количество камней в куче, то игра закончится и победителем будет Ваня. В начальный момент в куче было S камней, 1 LaTeX: << S LaTeX: \le≤ 23.
Задание 1.
а) При каких значениях числа S Петя может выиграть в один ход?
(в порядке возрастания, через пробел)
б) У кого из игроков есть выигрышная стратегия (укажите Ваня или Петя)
при S = 22, 21, 20?
Задание 2. У кого из игроков есть выигрышная стратегия (укажите Ваня или Петя)
при S = 11, 10?
Задание 3. У кого из игроков есть выигрышная стратегия (укажите Ваня или Петя)
при S = 9?
begin
writeln ('Введите 5 чисел через пробел: ');
readln (a1,a2,a3,a4,a5);
begin
if (a1>a2) then max:= a1else max:=a2;
if (a2>a3) then max:=a2else max:=a3;
if (a3>a4) then max:=a3else max:=a4;
if (a4>a5) then max:=a4else max:=a5;
end;
writeln (max);
end.
Аналогично с минимальным числом.
var a1,a2,a3,a4,a5,min: integer;
begin
writeln ('Введите 5 чисел через пробел: ');
readln (a1,a2,a3,a4,a5);
begin
if (a1<a2) then min:= a1else min:=a2;
if (a2<a3) then min:=a2else min:=a3;
if (a3<a4) then min:=a3else min:=a4;
if (a4<a5) then min:=a4else min:=a5;
end;
writeln (min);
end.
Можно так же решить с массива, если нужно пишите.
// PascalABC.NET 3.0, сборка 1076
begin
var n:=ReadInteger('Введите количество элементов массива: ');
var a:=ArrRandom(n,1000,10000);
Write('Исходный массив: ',a,#13#10);
Write('Множество цифр из разряда сотен: ');
a.Select(x->(x mod 1000) div 100).Sorted.Distinct.Println(',')
end.
Тестовое решение:
Введите количество элементов массива: 8
Исходный массив: [9374,4420,8856,8274,7555,2461,8302,6325]
Множество цифр из разряда сотен: 2,3,4,5,8
2. "Школьный вариант"
// PascalABC.NET 3.0, сборка 1076
var
i,n:integer;
sd:set of 0..9;
a:array[1..50] of integer;
begin
Write('Введите количество элементов массива: '); Read(n);
Randomize;
Write('Исходный массив: ');
sd:=[];
for i:=1 to n do begin
a[i]:=Random(9001)+1000;
Write(a[i],' ');
Include(sd,(a[i] mod 1000) div 100)
end;
Writeln;
Write('Множество цифр из разряда сотен: ');
for i:=0 to 9 do
if i in sd then Write(i:2);
Writeln
end.
Тестовое решение:
Введите количество элементов массива: 8
Исходный массив: 5332 4215 7231 3399 6989 8904 7804 3517
Множество цифр из разряда сотен: 2 3 5 8 9