কম্পিউটার

C++-এ বেস-2-এ রূপান্তর করুন


ধরুন আমাদের একটি সংখ্যা N আছে, আমাদের "0" s এবং "1" s সমন্বিত একটি স্ট্রিং খুঁজে বের করতে হবে যা ভিত্তি -2 (ঋণাত্মক দুটি) তে এর মান উপস্থাপন করে। প্রত্যাবর্তিত স্ট্রিংটিতে কোন অগ্রণী শূন্য থাকা উচিত নয়, যদি না স্ট্রিংটি ঠিক "0" হয়। সুতরাং ইনপুট যদি 2 এর মত হয়, তাহলে আউটপুট হবে "110", যেমন (-2)^2 + (-2)^1 + (-2)^0 =2।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

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

  • যদি N =0 হয়, তাহলে “0”

    রিটার্ন করুন
  • যখন N নন 0

    • rem :=N mod (– 2)

    • N :=N / (-2)

    • যদি rem <0 এবং rem :=rem + 2 এবং N বাড়ায় 1

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

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

  • রিটার্ন রিটার্ন।

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

উদাহরণ

#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++ এ গেম ভি জাম্প করুন

  2. যেকোন বেস থেকে দশমিকে রূপান্তর করুন এবং C++ এর বিপরীতে

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

  4. C++ এ একটি সংখ্যাকে নেতিবাচক ভিত্তি উপস্থাপনায় রূপান্তর করুন