Coins in a Line
Problem
There are n
coins in a line. Two players take turns to take one or two coins from right side until there are no more coins left. The player who take the last coin wins.
Could you please decide the first play will win or lose?
Example
n = 1
, returntrue
.n = 2
, returntrue
.n = 3
, returnfalse
.n = 4
, returntrue
.n = 5
, returntrue
.
Challenge
O(n)
time and O(1)
memory
Solution
Since you can take either 1 or 2 coins, the second player can always either 2 or 1 coins to make sure 3 coins are taken in one round, so if n % 3 == 0
, the second player will win, otherwise the first player will win.