[292] Nim Number
来源:互联网 发布:淘宝嘉贝逸飞旗舰店 编辑:程序博客网 时间:2024/06/09 22:35
1. 题目描述
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.
题目描述了一个游戏,游戏内容为给定一定数量的石头,两人交替从中取得1-3块石头,当前给定石头的数量n,给出算法,若我为先手,判定我是否有可能赢得游戏。
2. 解题思路
乍一看这个游戏是个人工智能的游戏,仔细看题目给出的例子,当我目前数量为4时,无论我拿1、2、3个都不可能赢得这个游戏,那么我们往后看一看,当前若为5、6、7个石头,那么只要我拿1、2、3个,使之达到4,那么对手是不可能赢的,所以在这种情况下,我有赢得可能,若当前为8个石头,那么我无论拿1、2、3个,对手都有可能在下一手剩下4个石头,那么我就没有赢的可能性了,依此类推,发现只要当前剩余数量是4的倍数,那么对方都有可能让我无法赢得游戏,所以算法就很简单了,下面给出代码。
3. Code
class Solution {public: bool canWinNim(int n) { if(n%4 != 0){ return true; // 可能赢 } return false; // 不可能赢 }};
- [292] Nim Number
- nim game & single number
- LeetCode 292: Nim Game (Nim游戏)
- LeetCode 292 Nim Game(Nim游戏)
- Nim Game leetcode 292
- [292]Nim Game
- [LeetCode 292] Nim Game
- leetcode 292---NIM GAME
- leetcode-292-Nim Game
- LeetCode 292----Nim Game
- LeetCode 292 Nim Game
- 292 Nim Game
- 292 Nim Game
- 【LEETCODE】292-Nim Game
- Leetcode #292 Nim Game
- LeetCode 292:Nim Game
- 【LeetCode】292 Nim Game
- LeetCode 292 Nim Game
- 格式化输出--%m.n
- 安装HomeBlew
- 微信订阅号 45009 报错
- How to create a new user and grant permissions on MySql
- POJ 2348 (博弈)
- [292] Nim Number
- 64位 Ubuntu 14 安装校园上网H3C客户端iNode
- java的定时器功能
- Android中Service服务详解(二)
- caffe 在windows系统下的配置,以及matlab接口配置
- 关于ViewDragHelper通过addView动态修改UI的坑
- React Native-17.React Native 常用API及实践 AppStateIOS StatusBarIOS
- GIT服务器搭建 gitosis 篇 系列1
- js数组循环遍历数组内所有元素的方法