СОЗДАЕМ ПОДПРОГРАММУ start()
Подпрограмма start() определяется условиями задачи и тем, как планируется организация вершин.
Рассмотрим наш пример (команды +1, *2, старт 1-32, завершение - не менее 33):
1. Можно считать, что Q - список размера 65 (стартовые вершины 1-32, финальные вершины 33-64 и 0 - "для удобства обращения);
2. Можно считать, что Q - список размера 33 ( стартовые вершины 1-32 и финальная вершина - используем 0)
3. Возможно использования трех множеств - Q (стартовые вершины), W (выигрышные/квадратики) и L (проигрышные/кружки)
Пока остановимся на 1 варианте, как на наиболее простом
Программа start() для примера могла выглядеть так:
def start():
return [None]*33+[0]*32
Напишите основной фрагмент программы и подпрограмму start(n) для варианта игры с параметром N
Два игрока, Петя и Ваня, играют в следующую игру.
Перед игроками лежит куча камней.
Игроки ходят по очереди, первый ход делает Петя.
За один ход игрок может добавить в кучу один или два камня или увеличить количество камней в куче в два раза.
Для того чтобы делать ходы, у каждого игрока есть неограниченное количество камней.
Игра завершается в тот момент, когда количество камней в куче становится не менее N.
Победителем считается игрок, сделавший последний ход, т.е. первым получивший кучу, в которой будет N или больше камней.
В начальный момент в куче было S камней, 1 ≤ S < N.
Входные данные:
Одно число N (1<N<100)
Правильность работы проверьте с помощью задания Задание 39900 (ЕГЭ 19-21)