Encuentra al jugador que ganará el juego de Monedas

Dadas N monedas, la tarea es encontrar quién gana el juego de monedas.
El juego de monedas es un juego en el que cada jugador elige monedas de las N monedas dadas de tal manera que puede elegir monedas que van de 1 a 5 monedas en un turno y el juego continúa para ambos jugadores. El jugador que saca la última moneda pierde el juego.
Ejemplos:
 

Input: N = 4
Output: First Player
Explanation:
Player 1 pick 3 coins and 
Player 2 pick last coin

Input: N = 7
Output: Second Player

Acercarse: 
 

  • Como el jugador puede tomar monedas que van de 1 a 5 inclusive y si un jugador pierde significa que solo tenía 1 moneda, de lo contrario, podría haber tomado 1 moneda menos que las monedas disponibles y obligar a otro jugador a perder. Así que ahora consideraremos el caso en el que el segundo jugador va a ganar, lo que significa que el primer jugador tenía solo una moneda.
  • Para N = 1, el segundo jugador va a ganar, para N = 2 a 6, el primer jugador puede elegir 1 moneda menos que N, y obligar al segundo jugador a perder para descartarlas, para N = 7, el primer jugador puede elegir la moneda 1 a 5, eso dejará monedas que van de 6 a 2, y luego el segundo jugador puede elegir 1 a 5, y para ganar, el segundo jugador elegirá inteligentemente 1 moneda menos forzando al primero a perder, así que básicamente comenzando desde 1, todos los números en una brecha de 6 (ya que cualquiera que elija el primer jugador, el segundo jugador elegirá monedas iguales a la diferencia de 6 y las monedas elegidas por el primer jugador) será la ganancia para el segundo jugador.
  • Finalmente, solo tenemos que verificar si n es de la forma 6 * c + 1 si es entonces el segundo jugador el que va a ganar, de lo contrario, el primer jugador va a ganar.

A continuación se muestra la implementación del enfoque anterior: 
 

C++

// C++ program to find the player
// who wins the game
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to check the
// winning player
void findWinner(int n)
{
    // As discussed in the
    // above approach
    if ((n - 1) % 6 == 0) {
        cout << "Second Player wins the game";
    }
    else {
        cout << "First Player wins the game";
    }
}
 
// Driver function
int main()
{
 
    int n = 7;
    findWinner(n);
}

Java

// Java program to find the player
// who wins the game
class GFG
{
 
// Function to check the
// winning player
static void findWinner(int n)
{
    // As discussed in the
    // above approach
    if ((n - 1) % 6 == 0)
    {
        System.out.println("Second Player wins the game");
    }
    else
    {
        System.out.println("First Player wins the game");
    }
}
 
// Driver Code
public static void main(String[] args)
{
    int n = 7;
    findWinner(n);
}
}
 
// This code is contributed by Rajput-Ji

Python3

# Python3 program to find the player
# who wins the game
 
# Function to check the
# winning player
def findWinner(n):
     
    # As discussed in the
    # above approach
    if ((n - 1) % 6 == 0):
        print("Second Player wins the game");
    else:
        print("First Player wins the game");
     
# Driver Code
if __name__ == '__main__':
    n = 7;
    findWinner(n);
 
# This code is contributed by 29AjayKumar

C#

// C# program to find the player
// who wins the game
 
using System;
 
class GFG
{
     
    // Function to check the
    // winning player
    static void findWinner(int n)
    {
        // As discussed in the
        // above approach
        if ((n - 1) % 6 == 0)
        {
            Console.WriteLine("Second Player wins the game");
        }
        else
        {
            Console.WriteLine("First Player wins the game");
        }
    }
     
    // Driver Code
    public static void Main()
    {
        int n = 7;
        findWinner(n);
    }
}
 
// This code is contributed by AnkitRai01

Javascript

<script>
 
// JavaScript program to find the player
// who wins the game
 
// Function to check the
// winning player
function findWinner(n)
{
    // As discussed in the
    // above approach
    if ((n - 1) % 6 == 0) {
        document.write("Second Player wins the game");
    }
    else {
        document.write("First Player wins the game");
    }
}
 
// Driver function
var n = 7;
findWinner(n);
 
</script>

Producción: 

Second Player wins the game

Complejidad del tiempo:O(1)

Espacio Auxiliar: O(1)
 

Publicación traducida automáticamente

Artículo escrito por md1844 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *