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

বারবার ইনভার্ট এবং অ্যাপেন্ড অপারেশন দিয়ে তৈরি বাইনারি স্ট্রিং-এ k-তম বিট খুঁজে বের করা C++-তে


মনে করুন আমাদের একটি বাইনারি স্ট্রিং s আছে, প্রাথমিকভাবে এটি বলুন "0"। এখন প্রতিটি ইটারেশনে এটি ইনভার্ট করুন, এবং অ্যাপেন্ড করুন, যেন n-তম ইটারেশনের পর, আমরা k-তম বিট পাই। মনে করুন ইটারেশনের সংখ্যা 4, এবং k = 7, তাহলে এটি হবে -

ইটারেশনমান (প্রাথমিক 0)
101
20110
301101001
40110100110010110

তাই 7-তম বিট হল 1।

প্রতিটি ইটারেশনে, কমপ্লিমেন্ট বের করুন, এবং অ্যাপেন্ড করুন, যেন n-তম ইটারেশনের পর k-তম বিট পাওয়া যায়।

উদাহরণ

#include <iostream>
using namespace std;

string getComplement(string bin) {
    string temp = "";
    for (int i = 0; i < bin.length(); i++) {
        if (bin[i] == '0')
            temp += "1";
        else
            temp += "0";
    }
    return temp;
}

char getCharacter(string bin_str, int n, int k) {
    string res = bin_str;
    for (int i = 0; i < n; i++) {
        res += getComplement(res);
    }
    return res[k];
}

int main() {
    int n = 4;
    string bin = "0";
    cout << 7 << "th character is: " << getCharacter(bin, n, 7);
}

আউটপুট

7th character is: 1

  1. C++-এ বাইনারি সার্চ দিয়ে স্ট্রিং খোঁজা

  2. C++ ব্যবহার করে বাইনারি স্ট্রিং S তৈরি করতে ন্যূনতম অপারেশন সংখ্যা

  3. C++ ব্যবহার করে স্ট্রিংয়ের প্রথম রিপিটেড ক্যারেক্টার বের করা

  4. বাইনারি সার্চ এবং সিকোয়েনশিয়াল সার্চ তুলনা করার C++ প্রোগ্রাম