1) Два игрока, Петя и Ваня, играют в следующую
игру. Перед игроками лежат три кучи камней. Игроки
ходят по очереди, первый ход делает Петя. За один
ход игрок может добавить в одну из куч (по своему
выбору) два камня или увеличить количество камней
в куче в три раза. Например, пусть в первой куче 10
камней, во второй 7, а в третьей 4 камня; такую
позицию в игре будем обозначать (10, 7, 4). Тогда за
один ход можно получить любую из шести позиций:
(12, 7, 4), (30, 7, 4), (10, 9, 4), (10, 21, 4), (10, 7, 6), (10,
7, 12). Для того чтобы делать ходы, у каждого игрока
есть неограниченное количество камней.
Игра завершается в тот момент, когда суммарное
количество камней в кучах становится не менее 57.
Победителем считается игрок, сделавший последний
ход, т. е. первым получивший такую позицию, что в
кучах всего будет 57 или больше камней.
Будем говорить, что игрок имеет выигрышную
стратегию, если он может выиграть при любых ходах
противника. Описать стратегию игрока — значит,
описать, какой ход он должен сделать в любой
ситуации, которая ему может встретиться при
различной игре противника.
Задание 1. Для каждой из начальных позиций (10, 7,
13), (9, 12, 10) укажите, кто из игроков имеет
выигрышную стратегию. В каждом случае опишите
выигрышную стратегию; объясните, почему эта
стратегия ведёт к выигрышу, и укажите, какое
наибольшее количество ходов может потребоваться
победителю для выигрыша при этой стратегии.
Задание 2. Для каждой из начальных позиций (12, 7,
10), (7, 11, 10) укажите, кто из игроков имеет
выигрышную стратегию. В каждом случае опишите
выигрышную стратегию; объясните, почему эта
стратегия ведёт к выигрышу, и укажите, какое
наибольшее количество ходов может потребоваться
победителю для выигрыша при этой стратегии.
Задание 3. Для начальной позиции (10, 10, 7)
укажите, кто из игроков имеет выигрышную
стратегию. Опишите выигрышную стратегию;
объясните, почему эта стратегия ведёт к выигрышу, и
укажите, какое наибольшее количество ходов может
потребоваться победителю для выигрыша при этой
стратегии. Постройте дерево всех партий, возможных
при указанной Вами выигрышной стратегии.
Представьте дерево в виде рисунка или таблицы.
1) program Array16;
var
i:integer; // счетчик в цикле
N:integer;
a: array [1..10] of integer;
begin
writeln('Введите N (N<10)');
readln(N); // ввод размера массива
for i:=1 to N do
begin
write('a[',i,']=');
readln(A[i]); // ручной ввод значений массива
end;
writeln('Результат');
for i:=1 to N do
begin
// вычисление и вывод элементов в указанном порядке
write(' ',a[(i div 2+1)*((i) mod 2)+ n*((i+1)mod 2)-((i div 2)-1)*((i+1) mod 2)]);
end;
end.
2) Var A:array[1..100] of integer;
i,n:byte;
Begin
write('Введите n<=100: ');readln(n);
For i:=1 to n do
Begin
A[i]:=random(31);
write(A[i]:3);
End;
writeln;
For i:=1 to n div 2 do
write(A[i]:3,A[n-i+1]:3);
if n mod 2 <>0 then write(A[n div 2+1]:3);
End.
number = int(input())
last_number = 0
even = 0
odd = 0
while (number > 0):
last_number = number % 10
if (last_number % 2 == 0):
even += 1
else:
odd += 1
number //= 10
print("Even = ", even, "Odd = ", odd)
Объяснение:
number = int(input()) // Объявление + ввод переменной
last_number = 0 // Переменная для хранения последней цифры числа
even = 0 // Количество четных
odd = 0 // Количество нечетных
while (number > 0): // Пока число > 0
last_number = number % 10 // Получаем последнюю цифру числа
if (last_number % 2 == 0): // Если цифра делится на 2 без остатка
even += 1 // В переменную even делаем + 1
else: // Иначе
odd += 1 // В переменную odd делаем + 1
number //= 10 // Удаляем последнюю цифру числа
print("Even = ", even, "Odd = ", odd) // Вывод