Один ключевой пункт
Если Боб выигрывает игру, то есть несколько стратегий, когда человек, начинающий игру, может проиграть.
Если Алиса выигрывает игру, выигрывает тот, кто начинает игру.
Таким образом, из каждого N проверяется, есть ли какая-либо выигрышная позиция Боба в N-1, N-2 и N-4. если да, то Алиса собирается выиграть с суммой позиций, на которых выигрывает Боб.
Если Алиса выигрывает с N-1, N-2 и N-4, то Алиса определенно собираетсяпроиграть эту игру от N.
Поскольку человек, начинающий игру с позиций N-1, N-2 и N-4, выигрывает игру. Когда Алиса передаст ход Бобу, Боб получит только один в N-1, N-2 и N-4. И человек, начинающий игру с этих позиций, собирается выиграть игру.
N>=5
sum=0
if Bob wins in N-1
sum+=coinGame(N-1).count
if Bob wins in N-2
sum+=coinGame(N-2).count
if Bob Wins in N-4
sum+=coinGame(N-4).count
if sum==0
Bob wins with coinGame(N-1).count + coinGame(N-2).count + coinGame(N-4).count
else
Alice wins with sum
Поиск coinGame (7)
Данный coinGame (3) = ('Bob', 2) 7-4
coinGame (5) =(«Алиса», 2) 7-2
coinGame (6) = («Боб», 6) 7-1
Боб выигрывает игру с 6 со счетом 6 и с 3со счетом 2
Таким образом, Алиса выиграет игру с 7 счетом 8