leetcode--292. Nim Game
2016-04-22 22:42
316 查看
You are playing the following Nim Game with your friend: >There is a heap of stones on the table, each time one of >you take turns to remove 1 to 3 stones. The one who >removes the last stone will be the winner. You will take the >first turn to remove the stones.
Both of you are very clever and have optimal strategies >for the game. Write a function to determine whether you >can win the game given the number of stones in the heap.
For example, if there are 4 stones in the heap, then you >will never win the game: no matter 1, 2, or 3 stones you >remove, the last stone will always be removed by your >friend.
思路:这道题提示当轮到我,石头数量为4时必输,引申一下,就是当轮到我,石头数为4n时(n>=2),这样对手一定能把石头降到4*(n-1),这样递减,最后就可以保证到我时数量为4,必输。
硬编码请忽视。。
Both of you are very clever and have optimal strategies >for the game. Write a function to determine whether you >can win the game given the number of stones in the heap.
For example, if there are 4 stones in the heap, then you >will never win the game: no matter 1, 2, or 3 stones you >remove, the last stone will always be removed by your >friend.
思路:这道题提示当轮到我,石头数量为4时必输,引申一下,就是当轮到我,石头数为4n时(n>=2),这样对手一定能把石头降到4*(n-1),这样递减,最后就可以保证到我时数量为4,必输。
硬编码请忽视。。
bool canWinNim(int n) { if(n <= 0) { return false; } if(n % 4 == 0) { return false; } return true; }
相关文章推荐
- 我是运营,我没有假期
- 每个 Linux 游戏玩家都绝不想要的恼人体验
- 在 Fedora 上使用 Steam play 和 Proton 来玩 Windows 游戏
- Steam 让我们在 Linux 上玩 Windows 的游戏更加容易
- 如何使用 Steam Play 在 Linux 上玩仅限 Windows 的游戏
- 新一代iPad适配应用之游戏篇
- VB实现的《QQ美女找茬游戏》作弊器实例
- C#实现洗牌游戏实例
- C#实现的算24点游戏算法实例分析
- C#实现简单的井字游戏实例
- C++编写简单的打靶游戏
- C++实现基于控制台界面的吃豆子游戏
- 纯javascript实现的小游戏《Flappy Pig》实例
- 基于javascript实现句子翻牌网页版小游戏
- JavaScript实现俄罗斯方块游戏过程分析及源码分享
- JS小游戏之仙剑翻牌源码详解
- JS小游戏之宇宙战机源码详解
- Android基本游戏循环实例分析
- JavaScript游戏之优化篇
- js实现俄罗斯方块小游戏分享