मान लीजिए हमारे पास तीन संख्याएं x, y और z हैं। एक समीक्षा साइट पर x व्यक्ति थे जो अपवोट करेंगे, y व्यक्ति जो डाउनवोट करेंगे, और z व्यक्तियों का एक और समूह जो वोट करेगा, लेकिन हम नहीं जानते कि वे अपवोट करेंगे या डाउनवोट। प्रत्येक व्यक्ति अधिकतम एक बार वोट कर सकता है। यदि अपवोट करने वाले लोग डाउनवोट करने वालों से अधिक हैं, तो परिणाम "+" होगा; यदि डाउनवोट काउंट अधिक है, तो परिणाम "-" होगा; अन्यथा परिणाम "0" होगा। z अज्ञात व्यक्तियों के कारण, परिणाम अनिश्चित हो सकता है (यानी एक से अधिक संभावित परिणाम हैं)। परिणाम अनिश्चित है ( '?' के रूप में दर्शाया गया) यदि और केवल यदि z व्यक्तियों के वोट करने के दो अलग-अलग स्थितियां मौजूद हैं। हमें परिणाम ढूंढना है या रिपोर्ट करना है कि यह अनिश्चित है या नहीं।
उदाहरण के लिए, यदि इनपुट x = 2; y = 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 "?"
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
#includeusing 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
आउटपुट
?