Predecir el ganador en Coin Game

Hay dos jugadores P1 y P2 y dos montones de monedas que consisten en M y N monedas respectivamente. En cada turno, un jugador puede elegir solo una de las pilas de estas y descartar la otra. Esta pila descartada no se puede usar más en el juego. La pila que elige el jugador se divide en dos pilas de partes distintas de cero. El jugador que no puede dividir la pila, es decir, el número de monedas en la pila es < 2, pierde el juego. La tarea es determinar qué jugador gana si P1 comienza el juego y ambos jugadores juegan de manera óptima.
Ejemplos: 
 

Entrada: M = 4, N = 4 
Salida: Jugador 1  El
jugador 1 puede elegir cualquiera de los montones ya que ambos contienen el mismo número de monedas 
y luego divide el elegido (el que no se elige se descarta) en dos montones con 1 moneda cada uno. 
Ahora, el jugador 2 se queda sin movimiento (ya que las dos pilas restantes contienen una sola moneda cada una 
que no se puede dividir en dos grupos de monedas distintas de cero).
Entrada: M = 1, N = 1 
Salida: Jugador 2 
No hay movimiento que hacer. 
 

Enfoque: simplemente verifique si alguna parte de la pila consta de un número par de monedas. En caso afirmativo, gana el jugador 1; de lo contrario, gana el jugador 2.
A continuación se muestra la implementación del enfoque anterior:
 

C++

// C++ implementation of the approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to print the winner of the game
void findWinner(int M, int N)
{
    if (M % 2 == 0 || N % 2 == 0)
        cout << "Player 1";
    else
        cout << "Player 2";
}
 
// Driver code
int main()
{
    int M = 1, N = 2;
    findWinner(M, N);
 
    return 0;
}

Java

// Java implementation of the approach
import java.io.*;
 
class GFG {
 
    // Function to print the winner of the game
    static void findWinner(int M, int N)
    {
        if (M % 2 == 0 || N % 2 == 0)
            System.out.println("Player 1");
        else
            System.out.println("Player 2");
    }
 
    // Driver code
    public static void main(String[] args)
    {
        int M = 1, N = 2;
        findWinner(M, N);
    }
}
 
// This code is contributed by ajit.

Python3

# Python implementation of the approach
# Function to print the winner of the game
  
def findWinner(M, N):
    if (M % 2 == 0 or N % 2 == 0):
        print("Player 1");
    else:
        print("Player 2");
  
# Driver code
M = 1;
N = 2;
findWinner(M, N);
 
 
# This code contributed by PrinciRaj1992

C#

// C# implementation of the approach
using System;
 
class GFG {
 
    // Function to print the winner of the game
    static void findWinner(int M, int N)
    {
        if (M % 2 == 0 || N % 2 == 0)
            Console.WriteLine("Player 1");
        else
            Console.WriteLine("Player 2");
    }
 
    // Driver code
    static public void Main()
    {
        int M = 1, N = 2;
        findWinner(M, N);
    }
}
 
// This code is contributed by Tushil..

PHP

<?php
//PHP implementation of the approach
// Function to print the winner of the game
 
function findWinner($M, $N)
{
    if ($M % 2 == 0 || $N % 2 == 0)
        echo "Player 1";
    else
        echo "Player 2";
}
 
    // Driver code
    $M = 1;
    $N = 2;
    findWinner($M, $N);
 
// This code is contributed by Tushil.
?>

Javascript

<script>
 
// Javascript implementation of the approach
 
// Function to print the winner of the game
function findWinner(M, N)
{
    if (M % 2 == 0 || N % 2 == 0)
        document.write(("Player 1"));
    else
        document.write(("Player 2"));
}
 
// Driver code
var M = 1, N = 2;
findWinner(M, N);
 
// This code is contributed by rutvik_56.
</script>
Producción: 

Player 1

 

Publicación traducida automáticamente

Artículo escrito por Naman_Garg 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 *