ধরুন আমাদের তিনটি সংখ্যা x, y এবং z আছে। একটি পর্যালোচনা সাইটে সেখানে x ব্যক্তি ছিল যারা আপভোট করবে, y ব্যক্তি যারা ডাউনভোট করবে এবং z ব্যক্তিদের আরেকটি গ্রুপ যারা ভোট দেবে, কিন্তু আমরা জানি না তারা আপভোট করবে নাকি ডাউনভোট করবে। প্রত্যেক ব্যক্তি সর্বোচ্চ একবারে ভোট দিতে পারে। যদি ডাউনভোটের চেয়ে আপভোট বেশি হয়, ফলাফল হবে "+"; যদি ডাউনভোট সংখ্যা বেশি হয়, ফলাফল হবে "-"; অন্যথায় ফলাফল "0" হবে। z অজানা ব্যক্তিদের কারণে, ফলাফল অনিশ্চিত হতে পারে (অর্থাৎ একাধিক সম্ভাব্য ফলাফল আছে)। ফলাফল অনিশ্চিত ('?' হিসাবে উপস্থাপিত) যদি এবং শুধুমাত্র যদি zpersons ভোট দেওয়ার দুটি ভিন্ন পরিস্থিতি বিদ্যমান থাকে। আমাদের ফলাফল খুঁজে বের করতে হবে বা রিপোর্ট করতে হবে এটা অনিশ্চিত কিনা।
সুতরাং, ইনপুট যদি 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 "?"
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#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
আউটপুট
?