zoukankan      html  css  js  c++  java
  • 292. Nim Game

    Problem:

    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.

    Example:

    Input: 4
    Output: false 
    Explanation: 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.
    

    思路

    如果石头的个数是4的倍数,则不管先手取几块石头,另一个人后手补齐4颗,必输;如果不是4的倍数,则第一次取石头数除4的余数,后面与另一个人每次都补齐4颗,必胜。

    Solution (C++):

    bool canWinNim(int n) {
        if (n % 4 == 0)  return false;
        else return true;
    }
    

    性能

    Runtime: 4 ms  Memory Usage: 6.1 MB

    思路

    Solution (C++):

    
    

    性能

    Runtime: ms  Memory Usage: MB

    相关链接如下:

    知乎:littledy

    欢迎关注个人微信公众号:小邓杂谈,扫描下方二维码即可

    作者:littledy
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    Javascript 进阶
    transform顺序浅谈
    js对象克隆
    js动画最佳实现——requestAnimationFrame
    svg标签
    typeof和instanceof
    js变量浅谈
    X-UA-compatible浅谈
    封装$
    面向对象
  • 原文地址:https://www.cnblogs.com/dysjtu1995/p/12650494.html
Copyright © 2011-2022 走看看