কম্পিউটার

C++ এ লেক্সিকোগ্রাফিক ক্রমে 'A' এবং 'B' স্ট্রিং হিসাবে একটি সংখ্যা প্রিন্ট করুন


এই সমস্যায়, আমাদের একটি সংখ্যা N দেওয়া হয়েছে। আমাদের কাজ হল অভিধানিক ক্রমে 'A' এবং 'B'-এর স্ট্রিং হিসাবে একটি সংখ্যা প্রিন্ট করার জন্য একটি প্রোগ্রাম তৈরি করা।

'A' এবং 'B' এর স্ট্রিং হিসাবে সমস্ত সংখ্যার প্রতিনিধিত্ব হল

1 =ক
2 =খ
3 =AA
4 =AB
5 =বিএ
6 =বিবি
7 =AAA
8 =AAB


সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

ইনপুট: N =12

আউটপুট: BAB

সমাধান পদ্ধতি

'A' এবং 'B' এর স্ট্রিং একটি বাইনারি সংখ্যার অনুরূপ। স্ট্রিং খুঁজে বের করার জন্য, আমরা প্রথমে স্ট্রিং এর দৈর্ঘ্য খুঁজে বের করব, এটি ব্যবহার করে যে দৈর্ঘ্য 1 (আকার 2 পর্যন্ত), দৈর্ঘ্য 2 এর 4 সংখ্যা (6 আকার পর্যন্ত), দৈর্ঘ্য 3 (আকার পর্যন্ত) 8টি সংখ্যা রয়েছে। 14)। দৈর্ঘ্য খুঁজে বের করার পরে আমাদের স্ট্রিংয়ের অক্ষরগুলি খুঁজে বের করতে হবে। আমরা স্ট্রিংয়ে সংখ্যা যোগ করার সাথে সাথে অবশিষ্ট দৈর্ঘ্যটিকে পুনরাবৃত্তি করে আপডেট করে। অক্ষরটি N-এর (2^(দৈর্ঘ্য অবশিষ্ট)) এর সাথে তুলনা করার উপর ভিত্তি করে নির্ধারণ করা হয়, যদি N বর্তমান অক্ষরের চেয়ে ছোট হয় তবে 'B' অন্যথায় এটি 'A'। প্রতিটি পুনরাবৃত্তির পরে আমরা দৈর্ঘ্য 1 কমিয়ে ফেলব এবং অক্ষরটি 'B' হলে N আপডেট হবে, এবং সংখ্যা দ্বারা এটি হ্রাস করবে।

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,

উদাহরণ

#include <iostream>
#include<math.h>
using namespace std;

int findStringLength(int M) {

   int stringLen = 1;
   while((pow(2, stringLen + 1) - 2) < M) {
      stringLen++;
   }
   return stringLen;
}

void printNumString(int N) {
   
   int stringLen, num, stringNumber;
   stringLen = findStringLength(N);
   stringNumber = N - (pow(2, stringLen) - 2);
   while (stringLen) {
      num = pow(2, stringLen - 1);

      if (num < stringNumber) {
         cout<<"B";
         stringNumber -= num; }
      else {
         cout<<"A";
      }
      stringLen--;
   }
}

int main() {
   int N = 47;
   cout<<"The number as sting of 'A' and 'B' in lexicographic order is ";
   printNumString(N);
   return 0;
}

আউটপুট

The number as sting of 'A' and 'B' in lexicographic order is BAAAA

  1. C++ তে বিজোড় ফ্রিকোয়েন্সি থাকা অক্ষর প্রিন্ট করুন

  2. C++ অবরোহী ক্রমে স্ট্রিং সাজানো

  3. কিভাবে একটি std::string এবং একটি int C++ এ সংযুক্ত করবেন?

  4. স্ট্রিংকে নম্বরে রূপান্তরিত করা হচ্ছে এবং C++-এ এর বিপরীতে