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

C++ में दो वेसल्स और अनंत जल आपूर्ति का उपयोग करके एक लीटर मापें


इस समस्या में, हमें क्षमता x और y वाले दो वेसल्स और अनंत पानी की आपूर्ति दी गई है। हमारा कार्य एक ऐसा प्रोग्राम बनाना है जो एक वेसल में ठीक 1 लीटर की गणना कर सके। दी गई शर्त है कि x और y सह-अभाज्य हैं। सह-अभाज्य को अपेक्षाकृत अभाज्य, पारस्परिक रूप से अभाज्य के रूप में भी जाना जाता है, ये दो संख्याएं हैं जिनका केवल 1 सामान्य भाजक होता है। इसका तात्पर्य है कि उनका gcd (महत्तम सामान्य भाजक) 1 है।

यहां, मान लीजिए हमारे पास क्षमता x वाला वेसल V1 और क्षमता y वाला वेसल V2 है। इन दो वेसल्स का उपयोग करके 1 लीटर मापने के लिए हम पहले वेसल को पानी की आपूर्ति से भरेंगे और फिर इसे दूसरे में डालेंगे। इस प्रक्रिया को तब तक जारी रखेंगे जब तक वेसल V1 में 1 लीटर पानी न हो जाए।

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

इनपुट −

V1 = 5, V2 = 8 V1 = 5 ; V2 = 0 -> V1 से V2 में पानी डालें और इसे रिफिल करें। V1 = 5 ; V2 = 5 -> V1 से V2 में पानी डालें और इसे रिफिल करें। V1 = 2 ; V2 = 0 -> V1 से V2 में पानी डालें। अब, V2 भर गया है, इसे खाली करें। V1 = 5 ; V2 = 2 -> V1 से V2 में पानी डालें और इसे रिफिल करें। V1 = 5 ; V2 = 7 -> V1 से V2 में पानी डालें और इसे रिफिल करें। V1 = 4 ; V2 = 0 -> V1 से V2 में पानी डालें। अब, V2 भर गया है, इसे खाली करें। V1 = 1 ; V2 = 0 -> V1 से V2 में पानी डालें और इसे रिफिल करें। यहां, V1 1 लीटर पानी मापता है।

उदाहरण

समाधान को स्पष्ट करने वाला प्रोग्राम,

#include <iostream> using namespace std; int x, y, V1, V2 = 0; int transferWater(int amt1, int amt2) {    if (amt1 + amt2 < y){       V2 += V1;       return V1;    }    int transferred = y - V2;    V2 = 0;    return transferred; } void measure1Litre() {    while(V1 != 1){       if (V1 == 0)          V1 = x;       cout<<"Vessel 1: "<<V1<<" | Vessel 2: "<<V2<<endl;       V1 = V1 - transferWater(V1, V2);    }    cout<<"Vessel 1: "<<V1<<" | Vessel 2: "<<V2<<endl; } int main() {    x= 5, y = 8;    measure1Litre();    return 0; }

आउटपुट

Vessel 1: 5 | Vessel 2: 0 Vessel 1: 5 | Vessel 2: 5 Vessel 1: 2 | Vessel 2: 0 Vessel 1: 5 | Vessel 2: 2 Vessel 1: 5 | Vessel 2: 7 Vessel 1: 4 | Vessel 2: 0 Vessel 1: 5 | Vessel 2: 4 Vessel 1: 1 | Vessel 2: 0

  1. - C++ में दो समीकरणों का उपयोग करके दोहराने वाला और लापता संख्या खोजना

    समस्या विवरण इस समस्या में, हमें आकार N की एक सरणी arr[] दी गई है। इसमें 1 से N तक के पूर्णांक मान होते हैं। और रेंज से एक तत्व x गायब है जबकि सरणी में एक तत्व y दो बार आता है। हमारा कार्य दो समीकरणों का उपयोग करके दोहराने वाला और लापता संख्या खोजना है। उदाहरण इनपुट arr[] = {1, 2, 3, 3} आउटपुट लापत

  1. C++ का उपयोग करके एक छोर और मध्य बिंदु दिए जाने पर रेखा का दूसरा छोर खोजना C++ का उपयोग करके एक छोर और मध्य बिंदु दिए जाने पर रेखा का दूसरा छोर खोजना

    समस्या विवरण इस समस्या में, हमें एक रेखा के दो बिंदुओं के निर्देशांक दिए गए हैं: प्रारंभिक बिंदु A(xₐ, yₐ) और मध्य बिंदु M(xₘ, yₘ)। हमारा कार्य दिए गए एक छोर और मध्य बिंदु के साथ रेखा का दूसरा छोर खोजना है। उदाहरण इनपुट A = [1, 2], M = [3, 0] आउटपुट [5, -2] हल का दृष्टिकोण समस्या को हल करने के लिए

  1. - C++ में ++ ऑपरेटर का उपयोग करके दो संख्याओं को जोड़ना

    प्रोग्रामिंग में, ++ ऑपरेटर एक इंक्रीमेंट ऑपरेटर है जो ऑपरेंड के मान को 1 से बढ़ाता है। हम इस ऑपरेटर का उपयोग करके दो संख्याओं को संख्या a में 1 को b बार जोड़कर जोड़ सकते हैं। उदाहरण: Input: a = 31 , b = 4 Output: 35 व्याख्या - 31 में चार बार 1 जोड़ने पर, योग 31 +1+1+1+1 = 35 होता है। एल्गोरिदम इनपु