मान लीजिए कि हमारे पास तीन संख्याएँ हैं। कार्य इन सभी संख्याओं को '0' बनाने के लिए इष्टतम चरणों की कुल संख्या की गणना करना है।
उदाहरण के लिए
इनपुट-1:
a = 4 b = 4c = 6
आउटपुट:
7
स्पष्टीकरण: सभी संख्याओं को '0' बनाने के लिए इष्टतम चरणों की कुल संख्या है,
(4, 4, 6)
पहली और दूसरी संख्या से '1' हटाना =(3, 3, 6)
पहली और तीसरी संख्या से '1' हटाना =(2, 3, 5)
पहली और तीसरी संख्या से '1' हटाना =(1 ,3, 4)
पहली और तीसरी संख्या से '1' हटाना =(0,3,3)
दूसरे और तीसरे नंबर से '1' हटाना =(0,2, 2)
दूसरे और तीसरे नंबर से '1' हटाना =(0, 1, 1)
दूसरे और तीसरे नंबर से '1' हटाना =(0, 0, 0)
इस प्रकार, सभी संख्याओं को शून्य करने के चरणों की कुल संख्या '7' है
इस समस्या को हल करने का तरीका
इस विशेष समस्या को हल करने के लिए, हम किन्हीं दो संख्याओं में से '1' को इस प्रकार हटा देंगे कि इन दोनों संख्याओं का योग अंतिम संख्या से अधिक हो। इसे शून्य करने के लिए न्यूनतम चरणों को खोजने के लिए, हम चरणों की न्यूनतम संख्या की गणना करेंगे।
- इनपुट के रूप में तीन नंबर लें।
- जाँच करें कि क्या दो संख्याओं का योग मान लीजिए 'a' और 'b' 'c' से बड़ा है, और a> 0, b> 0, फिर 'a' और 'b' से '1' हटा दें।
- उत्तरों में से न्यूनतम खोजें और परिणाम लौटाएं।
उदाहरण
#include <bits/stdc++.h> using namespace std; int maxSteps(int a, int b, int c) { int res = 0; while (a + b > c and a > 0 and b > 0) { a--; b--; res++; } res += min(c, a + b); return res; } int main() { int a = 4; int b = 4; int c = 6; cout << maxSteps(a, b, c) << endl; return 0; }
उपरोक्त कोड को चलाने से आउटपुट इस प्रकार उत्पन्न होगा,
आउटपुट
7
दिए गए इनपुट में a =4, b =4 और c =6, सभी नंबरों को शून्य करने के लिए सात कदम उठाए जाएंगे, इस प्रकार प्रोग्राम आउटपुट को 7 के रूप में लौटाता है।