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

C++ में दो पूर्णांकों के साथ सम-विषम टर्न गेम


इस समस्या में, हमें तीन पूर्णांक मान A, B और T दिए गए हैं। हमारा कार्य दो पूर्णांकों के साथ सम-विषम टर्न गेम खेलने के लिए एक प्रोग्राम बनाना है।

दो पूर्णांक मान हैं:

T, जो गेम में टर्न की संख्या को दर्शाता है।
A खिलाड़ी1 के लिए मान को दर्शाता है
B खिलाड़ी2 के लिए मान को दर्शाता है

यदि T का मान विषम है, तो A के मान को 2 से गुणा किया जाता है।
यदि T का मान सम है, तो B के मान को 2 से गुणा किया जाता है।
हमें अंत में max(A, B) / min(A, B) का मान ढूंढकर वापस करना है।

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

इनपुट: A = 3, B = 4, T = 3

आउटपुट: 1

व्याख्या:

पहला टर्न: T विषम है, A को 2 से गुणा किया जाता है, A = 6।
दूसरा टर्न: T सम है, B को 2 से गुणा किया जाता है, B = 8।
तीसरा टर्न: T विषम है, A को 2 से गुणा किया जाता है, A = 12।

A = 12                   B = 4

max(A, B) = max(12, 4) = 12
min(A, B) = min(12, 4) = 4
max(A, B) / min(A, B) = 12/ 8 = 1

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

समस्या का एक सरल समाधान T टर्न के बाद A और B के मान की गणना करना और फिर max(A, B) / min(A, B) का मान वापस करना होगा। यह T पुनरावृत्तियों को लेकर एक प्रभावी समाधान है।

लेकिन एक अधिक प्रभावी समाधान इस तथ्य पर आधारित हो सकता है कि T के सम मान के लिए, नए A का मान N*A है और नए B का मान N*B है।

यह max(A, B) / min(A, B) का मान एक स्थिर बनाता है जो बराबर है
max(A, B) / min(A, B)।

यदि T का मान विषम है, तो A का मान 2*N*A होगा और B का मान N*B होगा।

यह max(A, B) / min(A, B) का मान एक स्थिर बनाता है जो बराबर है max(2A, B) / min(2A, B)।

समस्या का परिणाम max(A, B) / min(A, B) =

max(A, B) / min(A, B), यदि T सम है
max(A, B) / min(A, B), यदि T विषम है

हमारे समाधान की कार्यप्रणाली को दर्शाने वाला प्रोग्राम,

उदाहरण

#include <iostream>
using namespace std;

int EvenOddGame(int A, int B, int T) {
    if ( T%2 == 0)
        return (max(A, B) / min(A, B));
    else
        return (max(2*A, B) / min(2*A, B));
    return -1;
}

int main() {
    int A = 3, B = 2, T = 3;
    cout<<"The return value of even odd game is "<<EvenOddGame(A, B, T);
}

आउटपुट

The return value of even odd game is 3 

  1. C++ में जंप गेम IV C++ में जंप गेम IV

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

  1. C++ में दिए गए मान वाले लीफ नोड्स को हटाना C++ में दिए गए मान वाले लीफ नोड्स को हटाना

    मान लीजिए हमारे पास एक बाइनरी ट्री और एक पूर्णांक टारगेट है, हमें उन सभी लीफ नोड्स को हटाना है जिनका मान टारगेट के बराबर है। ध्यान रखें कि एक बार लीफ नोड हटाने के बाद यदि उसका पैरेंट नोड भी लीफ नोड बन जाता है और उसका मान टारगेट के बराबर है, तो उसे भी हटाना होगा (यह प्रक्रिया तब तक जारी रखें जब तक सं

  1. - C++ में एक डिफ़ॉल्ट मान के साथ सामान्य सरणी का इनिशियलाइज़ेशन

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