ধরুন আমাদের একটি বাইনারি স্ট্রিং বিন আছে। তারপর এটিতে n পুনরাবৃত্তি প্রয়োগ করুন এবং প্রতিটি পুনরাবৃত্তিতে 0 হয়ে যায় 01 এবং 1 হয়ে যায় 10, তারপর nম পুনরাবৃত্তির পরে স্ট্রিংটিতে ith সূচক অক্ষর। সুতরাং বাইনারি স্ট্রিং যদি 101, এবং n =2, এবং i =3 হয়, তাহলে প্রথম পুনরাবৃত্তির পরে এটি হবে 100110, পরবর্তী পুনরাবৃত্তিতে, এটি 100101101001 হবে, তাই ith সূচকটি 1 ধরে রেখেছে।
এটি সমাধান করার জন্য, আমাদের এই পদক্ষেপগুলি অনুসরণ করতে হবে -
- ন বার লুপ চালান, এবং প্রতিটি পুনরাবৃত্তিতে স্ট্রিং এ আরেকটি লুপ চালান
- বাইনারী স্ট্রিং এর প্রতিটি অক্ষরকে রূপান্তর করুন, এবং যদি এটি 0 হয়, তাহলে 01 সংরক্ষণ করুন বা যদি 1 হয়, তাহলে 10কে অন্য একটি অস্থায়ী স্ট্রিংয়ে সংরক্ষণ করুন
- অভ্যন্তরীণ লুপ সম্পূর্ণ হওয়ার পরে, অস্থায়ী স্ট্রিংকে বাইনারি স্ট্রিংয়ে সংরক্ষণ করুন।
- তারপর ith ইনডেক্স দিন।
উদাহরণ
#include<iostream> using namespace std; char getCharacter(string bin_str, int n, int i) { string temp = ""; for (int x = 0; x < n; x++) { for (int y = 0; y < bin_str.length(); y++) { if (bin_str[y] == '1') temp += "10"; else temp += "01"; } bin_str = temp; temp = ""; } return bin_str[i]; } int main() { int n = 2; string bin = "101"; cout << 3 << "rd character is: "<< getCharacter(bin, n, 3)<<endl; cout << 9 << "th character is: "<< getCharacter(bin, n, 9); }
আউটপুট
3rd character is: 1 9th character is: 0