Juego de Nim con eliminación de una piedra permitida

En Game of Nim , dos jugadores se turnan para quitar objetos de montones o de la pila de piedras. 
Supongamos que dos jugadores A y B están jugando el juego. A cada uno se le permite tomar solo una piedra de la pila. El jugador que recoja la última piedra del montón ganará el juego. Dado N el número de piedras en la pila, la tarea es encontrar el ganador, si el jugador A comienza el juego.
Ejemplos: 
 

Input : N = 3.
Output : Player A

Player A remove stone 1 which is at the top, then Player B remove stone 2 
and finally player A removes the last stone.

Input : N = 15.
Output : Player A

Para N = 1, el jugador A quitará la única piedra del montón y ganará el juego. 
Para N = 2, el jugador A quitará la primera piedra y luego el jugador B quitará la segunda o la última piedra. Entonces el jugador B ganará el juego.
Entonces, podemos observar que el jugador A gana cuando N es impar y el jugador B gana cuando N es par.
A continuación se muestra la implementación de este enfoque: 
 

C++

// C++ program for Game of Nim with removal
// of one stone allowed.
#include<bits/stdc++.h>
using namespace std;
 
// Return true if player A wins,
// return false if player B wins.
bool findWinner(int N)
{
  // Checking the last bit of N.
  return N&1;
}
 
// Driven Program
int main()
{
  int N = 15;
  findWinner(N)? (cout << "Player A";):
                 (cout << "Player B";);
  return 0;
}

Java

// JAVA Code For Game of Nim with
// removal of one stone allowed
import java.util.*;
 
class GFG {
     
    // Return true if player A wins,
    // return false if player B wins.
    static int findWinner(int N)
    {
      // Checking the last bit of N.
      return N & 1;
    }
     
    /* Driver program to test above function */
    public static void main(String[] args)
    {
        int N = 15;
        if(findWinner(N)==1)
            System.out.println("Player A");
        else
             System.out.println("Player B");
           
    }
}
 
// This code is contributed by Arnav Kr. Mandal.

Python3

# Python3 code for Game of Nim with
# removal of one stone allowed.
 
# Return true if player A wins,
# return false if player B wins.
def findWinner( N ):
     
    # Checking the last bit of N.
    return N & 1
     
# Driven Program
N = 15
print("Player A" if findWinner(N) else "Player B")
 
# This code is contributed by "Sharad_Bhardwaj".

C#

// C# Code For Game of Nim with
// removal of one stone allowed
using System;
 
class GFG {
     
    // Return true if player A wins,
    // return false if player B wins.
    static int findWinner(int N)
    {
        // Checking the last bit of N.
        return N & 1;
    }
     
    /* Driver program to test above function */
    public static void Main()
    {
        int N = 15;
         
        if(findWinner(N) == 1)
            Console.Write("Player A");
        else
            Console.Write("Player B");
         
    }
}
 
// This code is contributed by vt_m.

PHP

<?php
// PHP program for Game of
// Nim with removal of one
// stone allowed.
 
// Return true if player A wins,
// return false if player B wins.
function findWinner($N)
{
     
// Checking the last bit of N.
return $N&1;
}
 
// Driver Code
$N = 15;
 
if(findWinner($N))
echo "Player A";
else
echo "Player B";
 
// This code is contributed by vt_m.
?>

Javascript

<script>
 
// JavaScript program For Game of Nim with
// removal of one stone allowed
 
   // Return true if player A wins,
    // return false if player B wins.
    function findWinner(N)
    {
     
      // Checking the last bit of N.
      return N & 1;
    }
 
// Driver code
        let N = 15;
        if(findWinner(N)==1)
            document.write("Player A");
        else
             document.write("Player B");
          
         // This code is contributed by sanjoy_2.
</script>

Producción : 
 

Player A

Complejidad Temporal: O(1).
Este artículo es una contribución de Anuj Chauhan . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

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