- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Game of Nim with removal of one stone allowed in C++
In this problem called the game of Nim, we are given a positive integer N denoting the pile of stones and there are two players ‘playerA’ and ‘playerB’. Our task is to create a program to predict the winner of the Game of Nim.
GAME OF NIM − We have a heap of stones and two players ‘playerA’ and ‘playerB’. Each player can pick one store from the heap if ‘playerA’ starts picking one stone from the heap. We need to predict the winner of the game. The last player to pick the stone from the heap is the winner of the game.
Let’s take an example to understand the problem
Input: N = 6 Output: playerB Explanation : Total stones = 6, players picking stones as playerA - playerB - playerA - playerB - playerA - playerB
Solution Approach
One method to solve the problem is by finding the general formula for the values of N and the winner of the game. Let’s see some values of N, and the winners in each case,
N = 1, winner = playerA
N = 2, winner = playerB
N = 3, winner = playerA
From this, we can derive that if N is odd, playerA is the winner. And if N is even, playerB is the winner.
Example
Program to illustrate the working of our solution
#include<iostream> using namespace std; bool findGameofNimWinner(int N){ if(N%2 == 0) return 0; else return 1; } int main(){ int N = 26; cout<<"The winner of the Game of Nim is "; findGameofNimWinner(N) ? (cout << "Player A") : (cout << "Player B"); return 0; }
Output
The winner of the Game of Nim is Player B