Nim Game---292
来源:互联网 发布:数据库实训总结 编辑:程序博客网 时间:2024/06/08 17:05
题目大意:你和朋友做游戏,大家轮流从一堆石头中拿1~3个石头,拿到这堆石头中的最后一个石头的人就赢得比赛。也就是说,这个游戏2个人玩,从你先开始拿,那么这堆石头有多少个的情况下你绝对能赢得游戏呢?题目要求输入石头的总共个数,得出你是否能赢得比赛,赢返回true,输返回false。
题目分析:还是数学问题。我们还是来画图找规律啦!N表示这堆石头里的个数。后面是怎么拿石头的过程
N=1 1 赢
N=2 2 赢
N=3 3 赢
N=4 T^T 输
N=5 1(必须只能拿一个,后面随意拿,拿一个后就变成了4个,不就是N=4的情况么,谁先拿谁输) 赢
N=6 2(仍然把局变成N=4的情况,谁先拿谁输,哈哈) 赢
N=7 3(仍然把局变成N=4的情况,谁先拿谁输,哈哈) 赢
N=8 T^T(不论我开始拿几个,别人都会让下次我拿的那一轮变成N=4的局) 输
.
.
.
N=12 T^T(3*4=12,我先拿对手把剩余的变成是N=8的局) 输
朋友们,总结起来,就是当我先拿,只要剩下的没有机会让对手将剩下的石头弄成N=4的局或者N=4*n就肯定是我赢,程序显然就有思路了。
class Solution {public: bool canWinNim(int n) { if((n-4)%4==0)return false;elsereturn true; }};
值得提一句的是,在返回true的那一句,(n-4)%4的值也是你第一步必须拿的石头的个数,才能赢得这局比赛哦!
0 0
- 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
- Leetcode #292 Nim Game
- [leetcode 292]Nim Game
- 292Nim Game
- Nim Game---292
- 深度学习傻瓜教程(1)
- css:position 与 z-index 问题(1)
- python 函数式编程
- UITextField加密输入属性
- java微信开发-token验证
- Nim Game---292
- weibo爬虫计划,以及普适爬虫框架的搭建
- java 中类加载过程
- 原IOS CGContextSetLineWidth无法设置1像素线宽?
- java.lang.OutOfMemoryError: PermGen space
- viewpager+fragment
- 解决RadioGroup的RadioButton图片、文字无法居中
- Android px、dp、sp之间相互转换
- 【C++ STL学习之五】STL算法库