Nim Game
2015-10-30 15:57
459 查看
题目:
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.
Hint:
If there are 5 stones in the heap, could you figure out a way to remove the stones such that you will always be the winner?
解析:
A先摸,总数为1,2,3,A胜;为4,败;总数再大,进入相同循环:只要在A摸完一次后让剩下的数目为4的倍数,A必胜,如5,6,7,A胜,8,B胜……
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.
Hint:
If there are 5 stones in the heap, could you figure out a way to remove the stones such that you will always be the winner?
解析:
A先摸,总数为1,2,3,A胜;为4,败;总数再大,进入相同循环:只要在A摸完一次后让剩下的数目为4的倍数,A必胜,如5,6,7,A胜,8,B胜……
class Solution { public: bool canWinNim(int n) { if(n%4 == 0) return false; else return true; } };
相关文章推荐
- JQuery UI 精品UI推荐
- springmvc 环境配置图
- JavaWeb 学习
- inspect a function object
- UE4 Asynchronous Asset Loading
- More Effective C++学习笔记(2)
- SQL Server 2008 数据库编程摘要一 : 函数篇
- FMDB下的数据库操作DML语言
- ios7 - 怎么得到七牛返回的 文件和图片的 上传进度
- 录入学生信息
- jquery.validate.js的remote用法
- iOS多线程编程详情(GCD、NSThread、NSOperation)
- android 性能系列
- ionic路由(二)
- 【详解】SQL语句
- 11g R2 RAC打最新11.2.0.4.8 PSU补丁记录
- 设置APP图标和启动画面
- EAS BOS序时簿Query显示前字段值更新
- 第九课 输出语句
- setjmp longjmp