Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ . में एक पत्थर को हटाने के साथ निम का खेल अनुमत

इस समस्या में निम का खेल . कहा जाता है , हमें एक धनात्मक पूर्णांक N दिया गया है जो पत्थरों के ढेर को दर्शाता है और दो खिलाड़ी हैं 'playerA' और 'खिलाड़ीबी' . हमारा काम गेम ऑफ निम के विजेता की भविष्यवाणी करने के लिए एक प्रोग्राम बनाना है।

NIM का खेल - हमारे पास पत्थरों का ढेर है और दो खिलाड़ी हैं 'playerA' और 'खिलाड़ीबी' . प्रत्येक खिलाड़ी ढेर से एक स्टोर चुन सकता है यदि 'खिलाड़ीए' ढेर में से एक पत्थर उठाना शुरू कर देता है। हमें खेल के विजेता की भविष्यवाणी करने की जरूरत है। ढेर से पत्थर लेने वाला आखिरी खिलाड़ी खेल का विजेता होता है।

समस्या को समझने के लिए एक उदाहरण लेते हैं

Input: N = 6
Output: playerB
Explanation :
Total stones = 6, players picking stones as
playerA - playerB - playerA - playerB - playerA - playerB

समाधान दृष्टिकोण

समस्या को हल करने का एक तरीका एन के मूल्यों और खेल के विजेता के लिए सामान्य सूत्र खोजना है। आइए प्रत्येक मामले में N और विजेताओं के कुछ मान देखें,

N =1, विजेता =खिलाड़ीA

एन =2, विजेता =खिलाड़ी बी

एन =3, विजेता =खिलाड़ीए

इससे हम यह प्राप्त कर सकते हैं कि यदि N विषम है, तो खिलाड़ी A विजेता है। और यदि N सम है, तो खिलाड़ीB विजेता होता है।

उदाहरण

हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम

#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;
}

आउटपुट

The winner of the Game of Nim is Player B

  1. C++ में कॉइन गेम में विजेता की भविष्यवाणी करें

    इस खेल में, दो खिलाड़ी X और Y हैं। हमारा कार्य यह अनुमान लगाना है कि कौन खेल जीतेगा यदि दोनों बेहतर तरीके से खेलते हैं और X खेल शुरू करता है। खेल सिक्के के खेल में, N और M संख्या के सिक्कों के साथ दो ढेर होते हैं। खिलाड़ियों में से कोई एक खेल के लिए ढेर में से किसी एक को चुनता है। फिर कार्य ढेर क

  1. सी ++ में अनुमत अन्य के साथ प्रतिस्थापन के साथ लागत कम करें

    मान लीजिए कि हमारे पास एन तत्वों के साथ एक सरणी है। हमें दिए गए ऑपरेशनों का पालन करके ऐरे से एलीमेंट को हटाना है। ऑपरेशन इस तरह है, हमें सरणी के किन्हीं दो नंबरों को चुनना है, और बड़े को हटाना है। इस ऑपरेशन में शामिल लागत छोटी संख्या के समान है। हमें इस ऑपरेशन के आधार पर एक समय में केवल एक तत्व को ह

  1. सी ++ में एक डिफ़ॉल्ट मान के साथ सामान्य सरणी का प्रारंभ

    पूरे सरणी को बहुत ही सरलता से शून्य से आरंभ किया जा सकता है। यह नीचे दिखाया गया है। int arr[10] = {0}; हालांकि, उपरोक्त विधि का उपयोग करके संपूर्ण सरणी को गैर-शून्य मान में प्रारंभ करना संभव नहीं है। यह नीचे दिखाया गया है। int arr[10] = {5}; उपरोक्त उदाहरण में, केवल पहले तत्व को 5 से प्रारंभ किया