292.Nim游戏

桌子上有一堆石头。

轮流进行自己的回合, 你作为先手 。

每一回合,轮到的人拿掉 1 - 3 块石头。

拿掉最后一块石头的人就是获胜者。

假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可以赢,返回true;否则,返回false

此游戏有制胜方法。

当石头数量为4k+1(k为自然数)时,率先拿走1块石头,之后无论对方拿走几块,保证一回合内拿走石头数量和为4。即对方拿1块,自己拿3块;对方拿2块,自己拿2块;对方拿3块,自己拿1块。这样可以保证赢。

当石头数量为4k+2(k为自然数)时,率先拿走2块石头,之后无论对方拿走几块,保证一回合内拿走石头数量和为4。可以保证赢。

当石头数量为4k+3(k为自然数)时,率先拿走3块石头,之后无论对方拿走几块,保证一回合内拿走石头数量和为4。可以保证赢。

当石头数量为4k(k为整数)时,不能保证赢。

c 复制代码
bool canWinNim(int n) { 
    return n % 4; 
}
python 复制代码
class Solution:
    def canWinNim(self, n: int) -> bool:
        return n % 4 != 0
相关推荐
m0_748251726 小时前
Android webview 打开本地H5项目(Cocos游戏以及Unity游戏)
android·游戏·unity
gantengsheng6 小时前
基于51单片机和OLED12864的小游戏《贪吃蛇》
单片机·嵌入式硬件·游戏·51单片机
264玫瑰资源库6 小时前
从零开始C++棋牌游戏开发之第三篇:游戏的界面布局设计
开发语言·c++·python·游戏·pygame·源代码管理
264玫瑰资源库6 小时前
从零开始C++游戏开发之第七篇:游戏状态机与回合管理
开发语言·c++·游戏
windwind200012 小时前
游戏关卡设计方法的杂感
游戏·关卡设计
白乐天_n1 天前
腾讯游戏安全移动赛题Tencent2016A
安全·游戏
这是我581 天前
C++打小怪游戏
c++·其他·游戏·visual studio·小怪·大型·怪物
tealcwu1 天前
【游戏设计原理】21 - 解谜游戏的设计
游戏·游戏策划
清梦20201 天前
经典问题---跳跃游戏II(贪心算法)
算法·游戏·贪心算法
tealcwu1 天前
【游戏设计原理】22 - 石头剪刀布
游戏·游戏策划