Problem:
有一堆石子,两个人博弈,每个人一次可以拿1或2或3颗石子,拿走最后一堆石子的人赢,每个人都是最优策略,你先拿,问你能不能赢?
Solution:
如果是4的倍数,则一定输,因为不论自己那几颗,对手一定会继续留下4的倍数让你选。
class Solution {
public:
bool canWinNim(int n) {
return n%4 != 0;
}
};
Problem:
有一堆石子,两个人博弈,每个人一次可以拿1或2或3颗石子,拿走最后一堆石子的人赢,每个人都是最优策略,你先拿,问你能不能赢?
Solution:
如果是4的倍数,则一定输,因为不论自己那几颗,对手一定会继续留下4的倍数让你选。
class Solution {
public:
bool canWinNim(int n) {
return n%4 != 0;
}
};