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

C++ में गेम में अंतिम मॉन्स्टर के न्यूनतम संभावित अंतिम स्वास्थ्य


समस्या विवरण

N मॉन्स्टर्स दिए गए हैं, प्रत्येक मॉन्स्टर का प्रारंभिक स्वास्थ्य h[i] है जो एक इंटीजर है। एक मॉन्स्टर जीवित है यदि उसका स्वास्थ्य 0 से अधिक है।

प्रत्येक चरण में एक रैंडम मॉन्स्टर दूसरे रैंडम मॉन्स्टर को मारता है, हमला किए गए मॉन्स्टर का स्वास्थ्य हमला करने वाले मॉन्स्टर के स्वास्थ्य की मात्रा से कम हो जाता है। यह प्रक्रिया तब तक जारी रहती है जब तक एक ही मॉन्स्टर बचा रहता है। अंतिम शेष मॉन्स्टर का न्यूनतम संभव स्वास्थ्य क्या होगा।

उदाहरण

यदि इनपुट ऐरे है {2, 14, 28, 56} तो आउटपुट 2 होगा क्योंकि जब केवल पहला मॉन्स्टर शेष 3 मॉन्स्टर्स पर हमला करता रहता है, तो अंतिम मॉन्स्टर का अंतिम स्वास्थ्य 2 होगा, जो न्यूनतम है।

एल्गोरिदम

हम नीचे दिए गए GCD फॉर्मूला का उपयोग करके अंतिम उत्तर प्राप्त कर सकते हैं:

H(min) = gcd(h1, h2, ..., hn)

उदाहरण

#include <iostream> 
using namespace std; 

int gcd(int a, int b) { 
    if (a == 0) 
        return b; 
    return gcd(b % a, a); 
} 

int getPossibleHealth(int* health, int n) { 
    int currentGcd = gcd(health[0], health[1]); 
    for (int i = 2; i < n; ++i) { 
        currentGcd = gcd(currentGcd, health[i]); 
    } 
    return currentGcd; 
} 

int main() { 
    int health[] = { 4, 6, 8, 12 }; 
    int n = sizeof(health) / sizeof(health[0]); 
    cout << "Possible final health = " << getPossibleHealth(health, n) << endl; 
    return 0; 
}

आउटपुट

जब आप उपरोक्त प्रोग्राम को कंपाइल और एक्जीक्यूट करते हैं। यह निम्नलिखित आउटपुट उत्पन्न करता है:

Possible final health = 2

  1. C++ में जांचें कि पेज को कोण द्वारा घुमाना संभव है या नहीं C++ में जांचें कि पेज को कोण द्वारा घुमाना संभव है या नहीं

    इस समस्या में, हमें एक पेज पर स्थित तीन बिंदुओं के निर्देशांक दिए गए हैं। हमारा कार्य जांचना है कि पेज को कोण द्वारा घुमाना संभव है या नहीं। पेज का घुमाव इस तरह किया जाता है कि x की नई स्थिति y की पुरानी स्थिति है, y की नई स्थिति z की पुरानी स्थिति है। और घुमाव के आधार पर हां या नहीं प्रिंट करें। स

  1. - C++ में मैट्रिक्स में अंतिम सेल स्थिति ढूंढें

    समस्या विवरण एक कमांड स्ट्रिंग दी गई है जिसमें U (ऊपर), D (नीचे), L (बाएं), R (दाएं) दिशाएं हैं। प्रारंभिक स्थिति (x, y) दी गई है। सभी कमांड का पालन करने के बाद अंतिम स्थिति ढूंढें। उदाहरण: कमांड DDLRULL, प्रारंभिक स्थिति (3, 4)। अंतिम स्थिति (1, 5)। हल दृष्टिकोण प्रत्येक दिशा की गिनती करें और अं

  1. - लिनक्स पर C++ के लिए सर्वश्रेष्ठ IDE कौन सा है?

    बड़े प्रोजेक्ट्स को केवल टेक्स्ट एडिटर्स पर प्रबंधित करना मुश्किल होता है। ऐसे मामलों में IDE का उपयोग करने से आप अधिक उत्पादक और कम निराश होंगे। विभिन्न प्रकार के IDE उपलब्ध हैं और आपको अपनी आवश्यकताओं के अनुरूप सही चुनना चाहिए। लिनक्स पर C++ के लिए कोई एक सर्वश्रेष्ठ IDE नहीं है; आपको अपने टूल को