leetcode:292 Nim Game-每日编程第一题
2015-12-10 14:23
393 查看
[title3]Nim Game[/title3]
Total Accepted: 24894 Total Submissions: 49816 Difficulty: Easy
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).当石子数量为4*n时,无论A取1〜3个石头,B都可取3〜1个石头,使得每一轮石子总数-4,因此B可以确保取胜,A输。
2).当石子总数为其他情况时,A可取1~3个石头,使得石子总数变成4*n,跟据1).的分析,B此时必输,A胜。
因此,当石子数量为 4*n时,A输,其他情况A胜。
<span style="font-weight: normal;">class Solution {
public:
bool canWinNim(int n) {
if(0==n%4)
return false;
else
return true;
}
};</span>
相关文章推荐
- Integer to English words leetcode java
- C++ 判断char* 是否为空
- Struts2+spring+mybatis注解模式
- 用TP框架完成最基本的登录验证思路
- C#Soket组播
- Java 将图片转二进制再将二进制转成图片
- C++多态性
- 测试代码片段
- SpringMVC返回json数据的三种方式
- silverlight列表控件ComboBox 托管代码绑订数据集合
- C++11 学习笔记 基于范围的for循环
- matlab 拟合正态分布
- Java高并发笔记
- 推荐C++ Primer 第五版
- pandas 对每一列数据进行标准化
- hibernate 与spring 整合
- GoEasy在web端推送及接收
- C++获取可使用的COM口列表
- Cpp--STL的组成
- 零基础入门学习Python(6):列表(续)