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

C++ प्रोग्राम: कार्ड गेम के विजेता का पता लगाएं


मान लीजिए हमारे पास एक संख्या n, आकार k1 और k2 की दो सरणी A और B हैं। अमल और बिमल एक दिलचस्प कार्ड गेम खेल रहे हैं। n कार्ड हैं, जिनकी संख्या 1 से n है। प्रारंभ में कार्ड उनके बीच वितरित किए जाते हैं। खेल इस प्रकार चलता है: प्रत्येक चरण में, प्रत्येक खिलाड़ी अपने कार्ड में से एक लेता है (जो भी वे चाहते हैं) और टेबल पर रखता है, ताकि दूसरा खिलाड़ी न देख सके कि उन्होंने कौन सा कार्ड चुना। फिर, दोनों कार्ड प्रकट होते हैं, और जिस खिलाड़ी का कार्ड नंबर बड़ा होता है, वह दोनों कार्ड अपने हाथ में ले लेता है। प्रत्येक कार्ड को कितनी भी बार खेला जा सकता है। A उन कार्डों को दर्शाता है जो अमल खेलता है, B उन कार्डों को दर्शाता है जो बिमल खेलता है। खिलाड़ी हार जाता है यदि उसके पास कोई कार्ड नहीं है। हमें अंतिम विजेता ढूंढना है।

उदाहरण के लिए, यदि इनपुट n = 5; A = [3, 2]; B = [5, 1, 4] है, तो आउटपुट Bimal होगा, क्योंकि शुरू में वे (3, 5) खेल रहे हैं, बिमल सभी कार्ड ले लेता है, फिर (3, 1) खेलते हैं अमल दोनों कार्ड लेता है, फिर यदि वे (3, 4) खेलते हैं तो बिमल सभी ले लेता है और फिर यदि अमल 1 खेलता है, तो बिमल कार्ड 5 से उन्हें ले लेगा इसलिए अमल के हाथ में कोई कार्ड नहीं रहेगा।

चरण

इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:

d := 0 e := 0 for initialize i := 0, when i < size of A, update (increase i by 1), do:     f := A[i]     if d < f, then:         d := f for initialize i := 0, when i < size of A, update (increase i by 1),do:     f := A[i]     if e < f, then:         e := f if d > e, then:     return "Amal" Otherwise     return "Bimal"

उदाहरण

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

#include using namespace std; string solve(int n, vector A, vector B){     int d = 0;     int e = 0;     for(int i = 0; i e)         return "Amal";     else         return "Bimal"; } int main(){     int n = 5;     vector A = {3, 2};     vector B = {5, 1, 4};     cout << solve(n, A, B) << endl; }

इनपुट

5, {3, 2}, {5, 1, 4}

आउटपुट

Bimal

  1. - C++ प्रोग्राम: ग्राफ मैट्रिक्स का व्युत्क्रम (Inverse) ज्ञात करना

    यह एक C++ प्रोग्राम है जो ग्राफ मैट्रिक्स का व्युत्क्रम ज्ञात करता है। मैट्रिक्स का व्युत्क्रम केवल तभी मौजूद होता है जब मैट्रिक्स नॉन-सिंगुलर हो यानी डिटरमिनेंट 0 नहीं होना चाहिए। मैट्रिक्स का व्युत्क्रम कई तरीकों से ज्ञात किया जा सकता है। यहां हम एडजॉइंट मैट्रिक्स और उसके डिटरमिनेंट का उपयोग करके

  1. - C++ प्रोग्राम: LCM (लघुत्तम समापवर्त्य) खोजें

    परिचयदो संख्याओं का लघुत्तम समापवर्त्य (LCM) वह सबसे छोटी संख्या है जो दोनों का गुणक है। उदाहरण के लिए: मान लें हमारे पास दो संख्याएं हैं: 15 और 9। 15 = 5 * 3 9 = 3 * 3 इसलिए, 15 और 9 का LCM 45 है। उदाहरण (लूप का उपयोग करके)#include <iostream> using namespace std; int main() { int a = 7,

  1. - C++ प्रोग्राम: GCD (महत्तम समापवर्तक) खोजें

    परिचयदो संख्याओं का महत्तम समापवर्तक (GCD) वह सबसे बड़ी संख्या है जो दोनों को विभाजित करती है। उदाहरण के लिए: मान लें हमारे पास दो संख्याएं हैं 45 और 27। 45 = 5 * 3 * 3 27 = 3 * 3 * 3 इसलिए, 45 और 27 का GCD 9 है। उदाहरण 1 (यूक्लिडियन एल्गोरिदम)#include <iostream> using namespace std; int gcd(