কম্পিউটার টিউটোরিয়াল

সি++-এ কনভার্ট টু বেস -২ (Convert to Base -2)


মান লেযিয়ে একটি সংখ্যা N দেওয়া আছে, আমাদের "০" এবং "১" দিয়ে গঠিত একটি স্ট্রিং খুঁজে বের করতে হবে যা এর বেস -২ (নেগেটিভ টু) মান উপস্থাপন করে। রিটার্ন করা স্ট্রিংয়ের লিডিং জিরো থাকবে না, স্ট্রিংটি যদি ঠিক "০" না হয়। ইনপুট ২ হলে আউটপুট হবে "১১০", কারণ (-2)² + (-2)¹ + (-2)⁰ = ২।

এটি সমাধান করার জন্য আমরা নিচের ধাপগুলো অনুসরণ করব -

  • ret := খালি স্ট্রিং

  • যদি N == 0 হয়, "০" রিটার্ন করুন

  • যখন N ≠ ০

    • rem := N % (-2)

    • N := N / (-2)

    • যদি rem < 0 হয়, rem := rem + 2 এবং N++ করুন

    • ret := ret + rem (স্ট্রিং হিসেবে)

  • ret স্ট্রিংটি রিভার্স করুন

  • ret রিটার্ন করুন

নিচের বাস্তবায়নটি দেখে আরও ভালো বুঝতে পারবেন -

উদাহরণ

#include <bits/stdc++.h> using namespace std; class Solution {    public:    string baseNeg2(int N) {       string ret = "";       if(N == 0) return "0";       while(N){          int rem = N % (-2);          N /= -2;          if(rem < 0) rem += 2, N++;          ret += to_string(rem);       }       reverse(ret.begin(), ret.end());       return ret;    } }; main(){    Solution ob;    cout << (ob.baseNeg2(17)); }

ইনপুট

17

আউটপুট

10001

  1. C++-এ জাম্প গেম V (Jump Game V)

  2. C++-এ যেকোনো বেস থেকে ডেসিমাল এবং বিপরীত করণ

  3. C++-এ বেস 'b' থেকে দশমিকে দৈর্ঘ্য 'k'-র সকল সাবস্ট্রিং রূপান্তর করুন

  4. C++-এ নেগেটিভ বেস রিপ্রেজেন্টেশনে সংখ্যা রূপান্তর