📜  石头游戏

📅  最后修改于: 2022-05-13 01:57:59.179000             🧑  作者: Mango

石头游戏

给定一个整数N ,它是一堆棋子的数量,并且你和你的朋友正在玩棋子游戏,任务是找出你是否会赢。玩家(轮到他/她)可以取出 1 或 2 或 3 个硬币,游戏轮流进行。不能移动的一方输掉比赛。换句话说,移除最后一组硬币的玩家总是获胜。如果你能赢得比赛,打印YES否则打印NO
例子:

方法:

  • 首先考虑基本情况,即n = [1, 2, 3] 。在这些情况下,您总是会赢,因为您可以选择所有的石头,而您的朋友却无法采取行动。
  • 如果n = 4 ,您将失败。因为无论你拿多少,你都会留下一些石头让你的朋友拿走并赢得比赛。因此,为了获胜,您必须确保在轮到您时,您永远不会遇到正好剩下四颗棋子的情况。
  • 类似地,如果有5、6 或 7 个棋子,您只需拿足够的钱为您的朋友留下4 个棋子即可获胜。但是,如果堆上有 8 颗棋子,您将输,因为无论您选择1、2 或 3颗棋子,您的朋友都可以选择3、2 或 1颗棋子,以确保再次为您留下 4 颗棋子。
  • 很明显,相同的模式会重复,所以,如果n % 4 == 0那么你总是会输。

下面是上述方法的实现:

C++
// C++ program of game of stones
#include 
using namespace std;
 
// Function that returns true if u win
bool checkWin(int n)
{
    if (n % 4 != 0)
        return true;
    return false;
}
 
// Driver code
int main()
{
    // n is number of stones
    int n = 4;
 
    if (checkWin(n))
        cout << "YES" << endl;
    else
        cout << "NO" << endl;
    return 0;
}


Java
// Java program of game of stones
import java.io.*;
 
class GFG {
    // Function that returns true if u win
static boolean checkWin(int n)
{
    if (n % 4 != 0)
        return true;
    return false;
}
 
// Driver code
    public static void main (String[] args) {
     
    // n is number of stones
    int n = 4;
 
    if (checkWin(n))
            System.out.println("YES");
    else
            System.out.println( "NO");
         
    }
//This code is contributed by akt_mit   
}


python 3
# Python3 program of game of stones
  
# Function that returns true if u win
def checkWin( n):
 
    if (n % 4 != 0):
        return True
    return False
  
# Driver code
if __name__ == "__main__":
 
    # n is number of stones
    n = 4
  
    if (checkWin(n)):
        print ( "YES")
    else:
        print ("NO")


C#
//C#  program of game of stones
using System;
 
public class GFG{
// Function that returns true if u win
static bool checkWin(int n)
{
    if (n % 4 != 0)
        return true;
    return false;
}
 
// Driver code
     
    static public void Main (){
         
    // n is number of stones
    int n = 4;
 
    if (checkWin(n))
            Console.WriteLine("YES");
    else
            Console.WriteLine( "NO");
         
    }
//This code is contributed by ajit
}


PHP


Javascript


输出:
NO