zoukankan      html  css  js  c++  java
  • LeetCode OJ:Nim Game(Nim游戏)

    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:win

    2: win

    3: win

    4: 无论如何都无法win

    5:拿1,让对方面对4

    6:拿2,让对方面对4

    7:拿3,让对方面对4

    8:没有办法

    .....

    可见,当石头数量是4的倍数的时候,先手是无可奈何的,所以代码就很简单了,如下:

    1 class Solution {
    2 public:
    3     bool canWinNim(int n) {
    4         return n%4;
    5     }
    6 };
  • 相关阅读:
    LCSTS自动摘要数据集
    知识图谱问答-资料
    多轮对话管理系统Opendial
    关于自动摘要
    使用tatk构建对话代理
    android http协议
    web容器,servlet容器,模型驱动
    <s:property />
    linux下部署java web项目
    @ResultPath("/WEB-INF/jsp/project/")
  • 原文地址:https://www.cnblogs.com/-wang-cheng/p/4957648.html
Copyright © 2011-2022 走看看