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

सी ++ में निम गेम


मान लीजिए कि हम एक अन्य खिलाड़ी के साथ Nim Game नाम का गेम खेल रहे हैं। पत्थरों का ढेर है, हर बार एक खिलाड़ी बारी-बारी से 1 से 3 पत्थर निकालता है। जो अंतिम पत्थर को हटा देगा वह विजेता होगा। प्लेयर 1 पत्थरों को हटाने के लिए पहला मोड़ लेगा। दोनों खिलाड़ी बहुत चालाक हैं और उनके पास खेल के लिए अनुकूलतम रणनीतियां हैं। हमें यह निर्धारित करने के लिए एक एल्गोरिदम तैयार करना होगा कि क्या खिलाड़ी 1 ढेर में पत्थरों की संख्या को देखते हुए खेल जीत सकता है।

इसलिए, यदि इनपुट 5 की तरह है, तो आउटपुट सत्य होगा, क्योंकि 5 पत्थर हैं, इसलिए शुरुआत में, यदि खिलाड़ी 1 एक पत्थर लेता है, तो दूसरा खिलाड़ी 1 से 3 पत्थर ले सकता है। , खिलाड़ी 2 की बारी के बाद कम से कम एक पत्थर शेष रहेगा, ताकि खिलाड़ी1 जीत सके।

इसे एक आसान चरण का उपयोग करके हल किया जा सकता है -

  • सही लौटें जब n mod 4 0 के समान न हो, अन्यथा असत्य

उदाहरण

आइए एक बेहतर समझ प्राप्त करने के लिए निम्नलिखित कार्यान्वयन देखें -

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   bool canWinNim(int n) {
      return n%4!=0;
   }
};
main(){
   Solution ob;
   cout << (ob.canWinNim(5));
}

इनपुट

5

आउटपुट

1

  1. C++ में पेड़ में एक पंक्ति जोड़ें

    मान लीजिए कि हमारे पास एक बाइनरी ट्री है, हमारे पास मूल्य v और गहराई d भी है, हमें दी गई गहराई d पर मान v के साथ नोड्स की एक पंक्ति जोड़नी है। रूट नोड 1 गहराई पर है। इस ऑपरेशन को करने के लिए हमें इस नियम का पालन करना होगा - जैसा कि हम गहराई d जानते हैं, प्रत्येक मान्य ट्री नोड्स N के लिए गहराई d-1

  1. सी++ में जंप गेम IV

    मान लीजिए कि हमारे पास arr नामक पूर्णांकों की एक सरणी है। हम शुरुआत में इंडेक्स 0 पर हैं। एक चरण में हम इंडेक्स i से i + x पर जा सकते हैं जहां:i + x =0. j जहां:arr[i] और arr[j] समान हैं और i और j समान नहीं हैं। यहाँ n सरणी का आकार है। सरणी के अंतिम सूचकांक तक पहुंचने के लिए हमें न्यूनतम चरणों की संख

  1. सी++ में जंप गेम वी

    मान लीजिए कि हमारे पास पूर्णांकों की एक सरणी है जिसे arr और एक पूर्णांक d कहा जाता है। एक चरण में हम इंडेक्स i से − . पर जा सकते हैं i + x जहां:i + x