ধরুন আমাদের একটি বাইনারি স্ট্রিং s আছে, প্রথমে এটি "0" বলে। এখন প্রতিটি পুনরাবৃত্তিতে এটিকে উল্টে দিন এবং এটি যুক্ত করুন, এভাবে nম পুনরাবৃত্তির পরে, আমরা kth বিটটি খুঁজে পাব। ধরুন পুনরাবৃত্তির সংখ্যা 4, এবং k =7, তাহলে এটি হবে −
| পুনরাবৃত্তি | মান (প্রাথমিকভাবে 0) |
|---|---|
| 1 | 01 |
| 2 | 0110 |
| 3 | 01101001 |
| 4 | 0110100110010110 |
তাই 7 th বিট হল 1।
প্রতিটি পুনরাবৃত্তিতে, পরিপূরক খুঁজুন, এবং যোগ করুন, এভাবে nম পুনরাবৃত্তির পরে, kth বিট খুঁজে পায়
উদাহরণ
#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