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

C++ में 75% उपस्थिति बनाए रखने के लिए न्यूनतम व्याख्यान ढूंढना


इस समस्या में, हमें दो संख्याएं M और N दी गई हैं जो वर्तमान तिथि तक आयोजित कुल कक्षाओं की संख्या और छात्र द्वारा उपस्थित कक्षाओं की संख्या को दर्शाती हैं। हमारा कार्य C++ में 75% उपस्थिति बनाए रखने के लिए उपस्थित होने वाले न्यूनतम व्याख्यानों की संख्या ढूंढने के लिए एक प्रोग्राम बनाना है।

समस्या विवरण

यह कॉलेज के छात्रों के लिए 75% प्रतिशत उपस्थिति बनाए रखने की सबसे बड़ी चिंताओं में से एक है। यह प्रोग्राम उन न्यूनतम व्याख्यानों की संख्या की गणना करता है जिन्हें छात्र को नियमित रूप से उपस्थित होना होगा ताकि 75% उपस्थिति प्राप्त हो सके।

उदाहरण 1

इनपुट: M = 32, N = 20

आउटपुट: 16

व्याख्या

न्यूनतम 75% उपस्थिति प्राप्त करने के लिए छात्र को कम से कम 16 व्याख्यान उपस्थित होने चाहिए। इससे कुल व्याख्यान 48 और उपस्थित व्याख्यान 36 हो जाएंगे।

प्रतिशत = 36*100/48 = 75%

उदाहरण 2

इनपुट: M = 14, N = 4

आउटपुट: 26

व्याख्या

न्यूनतम 75% उपस्थिति प्राप्त करने के लिए छात्र को कम से कम 26 व्याख्यान उपस्थित होने चाहिए। इससे कुल व्याख्यान 40 और उपस्थित व्याख्यान 30 हो जाएंगे।

प्रतिशत = 30*100/40 = 75%

हल का दृष्टिकोण

यहां, हमें उन व्याख्यानों की संख्या ढूंढनी है जिन्हें छात्र को उपस्थित होने की आवश्यकता है। एक सरल तरीका है दोनों तरफ एक व्याख्यान जोड़ना और जब विभाजन 0.75 या उससे अधिक हो तो जोड़ना बंद करें और इटरेटर का मान लौटाएं।

हमारे समाधान के कार्य को स्पष्ट करने के लिए प्रोग्राम,

#include <iostream> 
using namespace std; 

int maintainAtt(int M, int N) { 
    int att = 0; 
    while(1){ 
        if(((N+att)*100)/(M+att) >= 75){ 
            return att; 
        } 
        att++; 
    } 
} 

int main() { 
    int M = 23, N = 12; 
    cout << "The total number of lectures to be attended is " << maintainAtt(M, N); 
    return 0; 
}

आउटपुट:

The total number of lectures to be attended is 21

यह दृष्टिकोण एक लूप का उपयोग करता है जो समाधान की समय जटिलता को O(n) क्रम का बनाता है। लेकिन हम गणितीय सूत्र का उपयोग करके इसे O(1) समय जटिलता में कर सकते हैं।

75% उपस्थिति बनाए रखने के लिए उपस्थित होने वाले न्यूनतम व्याख्यान का सूत्र है:

$$\lceil\frac{(0.75M) - N}{0.25}\rceil$$

हमारे समाधान के कार्य को स्पष्ट करने के लिए प्रोग्राम,

#include <iostream> 
#include <math.h> 
using namespace std; 

int maintainAtt(int M, int N) { 
    int att = ceil(((0.75*M) - N)/(0.25)); 
    return att; 
} 

int main() { 
    int M = 30, N = 11; 
    cout << "The total number of lectures to be attended is " << maintainAtt(M, N); 
    return 0; 
}

आउटपुट

The total number of lectures to be attended is 46

  1. C++ में प्रतिद्वंद्वी को पकड़ने के लिए आवश्यक न्यूनतम चरणों की संख्या ढूंढने का प्रोग्राम C++ में प्रतिद्वंद्वी को पकड़ने के लिए आवश्यक न्यूनतम चरणों की संख्या ढूंढने का प्रोग्राम

    परिचय मान लीजिए हमारे पास ट्री एजेज की एक सूची है [u, v] के रूप में, जो इंगित करती है कि u और v के बीच एक अनडायरेक्टेड एज है। और हमारे पास दो मान x और y भी हैं। यदि हम नोड x पर हैं, और हमारा प्रतिद्वंद्वी नोड y पर है। पहले राउंड में हम चलते हैं, फिर अगले राउंड में प्रतिद्वंद्वी चलता है और इसी तरह।

  1. - C++ प्रोग्राम: संख्या की समता (Parity) को कुशलतापूर्वक ज्ञात करना

    इस लेख में, हम एक प्रोग्राम पर चर्चा करेंगे जो दी गई संख्या N की समता (Parity) ज्ञात करता है। समता को किसी संख्या के बाइनरी प्रतिनिधित्व में सेट बिट्स की संख्या ( 1 की संख्या) के रूप में परिभाषित किया गया है। यदि बाइनरी प्रतिनिधित्व में 1 की संख्या सम है, तो समता को सम समता कहा जाता है और यदि बाइनर

  1. - C++ में संख्या के सम गुणनखंडों का योग

    समस्या विवरण यह प्रोग्राम किसी संख्या के सभी सम गुणनखंड ढूंढता है और इन सम गुणनखंडों का योग गणना करके आउटपुट के रूप में प्रदर्शित करता है। उदाहरण Input: 30 Even divisors: 2 + 6 + 10 + 30 = 48 Output: 48 दृष्टिकोण इसके लिए, हम सभी गुणनखंड ढूंढेंगे। उनमें से सम गुणनखंड ढूंढेंगे और उनका योग निकालेंग