मान लीजिए हमारे पास तीन संख्याएँ x, y और z हैं। एक समीक्षा साइट पर x व्यक्ति थे जो अपवोट करेंगे, y व्यक्ति जो डाउनवोट करेंगे, और z व्यक्तियों का एक अन्य समूह जो वोट देंगे, लेकिन हम नहीं जानते कि वे अपवोट करेंगे या डाउनवोट। प्रत्येक व्यक्ति अधिकतम एक बार मतदान कर सकता है। यदि अपवोट से अधिक लोग अपवोट करते हैं, तो परिणाम "+" होगा; यदि डाउनवोट की संख्या अधिक है, तो परिणाम "-" होगा; अन्यथा परिणाम "0" होगा। z अज्ञात व्यक्तियों के कारण, परिणाम अनिश्चित हो सकता है (अर्थात एक से अधिक संभावित परिणाम हैं)। परिणाम अनिश्चित है ('?' के रूप में दर्शाया गया है) यदि और केवल यदि दो अलग-अलग स्थितियां मौजूद हैं कि कैसे व्यक्ति मतदान करते हैं। हमें परिणाम खोजना है या रिपोर्ट करना है कि क्या यह अनिश्चित है।
इसलिए, यदि इनपुट x =2 जैसा है; वाई =0; z =2, तो आउटपुट '?' होगा क्योंकि 2 अपवोट हैं, यदि अन्य दो वोट नीचे हैं तो यह 0 होगा, लेकिन यदि वे अधिक हैं तो यह '+' होगा इसलिए उत्तर अनिश्चित है।
कदम
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
if x > y + z, then: return "+" otherwise when x + z < y, then: return "-" otherwise when not z is non-zero, then: return "0" Otherwise return "?"
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include <bits/stdc++.h> using namespace std; string solve(int x, int y, int z){ if (x > y + z) return "+"; else if (x + z < y) return "-"; else if (!z) return "0"; else return "?"; } int main(){ int x = 2; int y = 0; int z = 2; cout << solve(x, y, z) << endl; }
इनपुट
2, 0, 2
आउटपुट
?