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

সংখ্যাকে 'A' এবং 'B' স্ট্রিংয়ে লেক্সিকোগ্রাফিক্যাল অর্ডারে রূপান্তর C++-তে


এই সমস্যায় আমাদের একটি সংখ্যা N দেওয়া আছে। আমাদের কাজ সংখ্যাকে 'A' এবং 'B' স্ট্রিংয়ে লেক্সিকোগ্রাফিক্যাল অর্ডারে রূপান্তর করা।

সব সংখ্যার 'A' এবং 'B' স্ট্রিং রিপ্রেজেন্টেশন হলো:

1 = A
 2 = B
 3 = AA
 4 = AB
 5 = BA
 6 = BB
 7 = AAA
 8 = AAB


উদাহরণ:

ইনপুট: N = 12

আউটপুট: BAB

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

'A' এবং 'B' স্ট্রিংটি বাইনারি সংখ্যার অনুরূপ। স্ট্রিং খুঁজে বের করতে, আমরা প্রথমে স্ট্রিংর দৈর্ঘ্য বের করব, โดย 이용해 Факт যে দৈর্ঘ্য ১-র ২টি সংখ্যা আছে (সাইজ ২ পর্যন্ত), দৈর্ঘ্য ২-র ৪টি সংখ্যা (সাইজ ৬ পর্যন্ত), দৈর্ঘ্য ৩-র ৮টি সংখ্যা (সাইজ ১৪ পর্যন্ত)। দৈর্ঘ্য পাওয়ার পর আমাদের স্ট্রিংর ক্যারেক্টারগুলো বের করতে হবে। বাকি দৈর্ঘ্য আপডেট করে যেসব ক্যারেক্টার স্ট্রিংয়ে যোগ করছি। ক্যারেক্টারটি নির্ণয় করা হয় N কে (2^(বাকি দৈর্ঘ্য)) দিয়ে তুলনা করে, যদি N ছোট হয় তবে ক্যারেক্টার 'B' অন্যথায় 'A'। প্রতিটি ইটারেশনে দৈর্ঘ্য ১ কমাবো এবং যদি ক্যারেক্টার 'B' হয় তবে N আপডেট করব এবং num দিয়ে কমিয়ে দিব।

আমাদের সমাধান দেখানোর প্রোগ্রাম

উদাহরণ

#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++-এ বিজোড় ফ্রিকোয়েন্সিয়ের ক্যারেক্টরগুলো অভ apparition অর্ডারে প্রিন্ট করুন

  2. স্ট্রিং ডিসেন্ডিং অর্ডারে সর্টিং C++-তে

  3. C++-এ std::string এবং int ক্যাটেনেট করা

  4. C++-এ স্ট্রিংকে নম্বরে এবং নম্বরকে স্ট্রিংএ কনভার্ট করা