石头游戏
给定一个整数N ,它是一堆棋子的数量,并且你和你的朋友正在玩棋子游戏,任务是找出你是否会赢。玩家(轮到他/她)可以取出 1 或 2 或 3 个硬币,游戏轮流进行。不能移动的一方输掉比赛。换句话说,移除最后一组硬币的玩家总是获胜。如果你能赢得比赛,打印YES否则打印NO 。
例子:
Input: N = 4
Output: NO
If there are 4 stones in the bag, 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. Hence, you are not able to make the move.
Input: N = 3
Output: YES
Yes you can win the game, you just remove all 3 stones in your turn.
方法:
- 首先考虑基本情况,即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