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

C में दो चरणों में निकाली जा सकने वाली अधिकतम धनराशि


हमें दो लॉकर दिए गए हैं, मान लीजिए L1 और L2 जिनमें सिक्कों के रूप में कुछ धनराशि है। L1 में A सिक्के हैं और L2 में B संख्या के सिक्के हैं। हमें लॉकर से धनराशि या सिक्के इस तरह निकालने हैं कि निकाली गई धनराशि अधिकतम हो। हर बार जब किसी लॉकर से सिक्के निकाले जाते हैं, तो उसे उसके पिछले काउंट से 1 कम सिक्कों से बदल दिया जाता है। यदि हम L1 से A सिक्के निकालते हैं तो इसे A-1 सिक्कों से बदल दिया जाएगा और यदि हम L2 से B सिक्के निकालते हैं तो इसे B-1 सिक्कों से बदल दिया जाएगा। कार्य दो चरणों में निकाली गई धनराशि को अधिकतम करना है। अर्थात सिक्के केवल दो बार निकाले जा सकते हैं।

इनपुट

L1 - 10, L2 - 11

आउटपुट

दो चरणों में निकाली जा सकने वाली अधिकतम धनराशि: 21

व्याख्या

चरण 1 में हम L2 से 11 सिक्के निकालते हैं, L2 को 11-1=10 सिक्कों से बदल दिया जाएगा।

चरण 2 में L1 और L2 दोनों में 10 सिक्के हैं इसलिए किसी से भी निकाले जा सकते हैं और हमारे पास 11+10=21 सिक्के हैं जो अधिकतम है।

इनपुट

L1 - 5, L2 - 5

आउटपुट

दो चरणों में निकाली जा सकने वाली अधिकतम धनराशि: 10

व्याख्या

चरण 1 में हम L1 से 5 सिक्के निकालते हैं, L1 को 5-1=4 सिक्कों से बदल दिया जाएगा।

चरण 2 में L1 में 4 सिक्के हैं और L2 में 5 सिक्के हैं इसलिए हम L2 से 5 सिक्के लेते हैं और हमारे पास 5+5=10 सिक्के हैं जो अधिकतम है।

उपयोग किया गया दृष्टिकोण

  • हमारे पास दो लॉकर L1 और L2 हैं जिनमें कुछ सिक्के हैं।

  • फ़ंक्शन maxMoney(int A, int B) लॉकर में सिक्कों की संख्या को इनपुट के रूप में लेता है।

  • maxMoney() के अंदर हम चर 'money' लेते हैं अधिकतम धनराशि संग्रहीत करने के लिए।

  • प्रारंभ में money A या B से जो भी अधिक हो उसका मान लेता है (money = A > B ? A : B)।

  • money के मान की तुलना A या B से करके जांचें कि किस कंटेनर के सिक्के निकाले गए।

  • अब उस कंटेनर को पिछली राशि से 1 कम से बदलें (A-- या B--)।

  • फिर से money में A या B से जो भी अधिक हो उसका मान जोड़ें (money += A > B ? A : B)।

उदाहरण

कोड: #include <stdio.h> #include <math.h> // अधिकतम सिक्के लौटाने वाला फ़ंक्शन जो हम प्राप्त कर सकते हैं int maxMoney(int A, int B){     // सिक्के लें     int money = A > B ? A : B;     // लॉकर को 1 कम सिक्कों से फिर से भरें     if (money == A)         A--;     else         B--;     // फिर से निकालें     money += A > B ? A : B;     return money; } // ड्राइवर कोड int main(){     int L1 = 8, L2 = 9;     printf("दो चरणों में निकाली जा सकने वाली अधिकतम धनराशि: %d", maxMoney(L1, L2));     return 0; }

आउटपुट

उपरोक्त कोड चलाने पर निम्नलिखित आउटपुट उत्पन्न होगा:

दो चरणों में निकाली जा सकने वाली अधिकतम धनराशि: 17
  1. C++ में N सेगमेंट का उपयोग करके सेवन सेगमेंट डिस्प्ले पर प्रदर्शित अधिकतम संख्या C++ में N सेगमेंट का उपयोग करके सेवन सेगमेंट डिस्प्ले पर प्रदर्शित अधिकतम संख्या

    दिया गया कार्य N सेगमेंट का उपयोग करके किसी भी संख्या के सेवन सेगमेंट डिस्प्ले पर प्रदर्शित की जा सकने वाली अधिकतम संख्या ढूंढना है।उदाहरण से समझते हैंइनपुट - N=5आउटपुट - 71व्याख्या - सबसे बड़ी संख्या सेवन सेगमेंट डिस्प्ले पर इस प्रकार प्रदर्शित होगी।इनपुट - N=6आउटपुट - 111प्रयुक्त दृष्टिकोणनिम्नलिख

  1. C++ में N*N शतरंज बोर्ड पर रखे जा सकने वाले अधिकतम बिशप की संख्या C++ में N*N शतरंज बोर्ड पर रखे जा सकने वाले अधिकतम बिशप की संख्या

    हमें एक इनपुट N दिया गया है जो शतरंज बोर्ड के आकार को दर्शाता है। यहां कार्य N के किसी भी मान के लिए यह पता लगाना है कि NxN शतरंज बोर्ड पर कितने बिशप रखे जा सकते हैं ताकि कोई भी दो बिशप एक-दूसरे पर हमला न कर सकें।उदाहरण से समझते हैंइनपुट - N=2आउटपुट - N*N शतरंज बोर्ड पर रखे जा सकने वाले अधिकतम बिशप

  1. C++ में बाइनरी ट्री के दो नोड्स को जोड़कर बनने वाले अधिकतम लंबाई के चक्र C++ में बाइनरी ट्री के दो नोड्स को जोड़कर बनने वाले अधिकतम लंबाई के चक्र

    हमें एक बाइनरी ट्री दिया गया है। लक्ष्य दिए गए ट्री में अधिकतम लंबाई का चक्र ढूंढना है। हम इसे रूट नोड से बाएं उपट्री और दाएं उपट्री की अधिकतम ऊंचाई ढूंढकर और इन अधिकतम लंबाई के पथों को जोड़कर सबसे लंबा चक्र प्राप्त करेंगे। उपरोक्त ट्री के लिए अधिकतम लंबाई का चक्र 1-2-3-4-7-6 या 1-6-7-4-3-2-1 है। ल