একটি বাইনারি স্ট্রিং bin দেওয়া আছে। এর ওপর n বার ইটারেশন (iteration) প্রয়োগ করতে হবে, প্রতিটি ইটারেশনে 0 হয় 01 এবং 1 হয় 10, এরপর n-তম ইটারেশনের পর i-তম ইনডেক্সের ক্যারেক্টার বের করতে হবে। উদাহরণস্বরূপ, বাইনারি স্ট্রিং 101, n = 2, i = 3 হলে, প্রথম ইটারেশনে হবে 100110, দ্বিতীয় ইটারেশনে হবে 100101101001, তাই ৩-য় ইনডেক্সে ১ আছে।
এটি সমাধানের জন্য নিচের ধাপগুলো অনুসরণ করতে হবে:
- n বার লুপ চালাতে হবে, প্রতিটি ইটারেশনে স্ট্রিংয়ের ওপর লুপ চালাতে হবে
- বাইনারি স্ট্রিংর প্রতিটি ক্যারেক্টার কনভার্ট করতে হবে, যদি 0 হয় তবে 01 স্টোর করব, 1 হলে 10 স্টোর করব একটি টেম্পোরারি স্ট্রিং-এ
- ইনার লুপ শেষ হলে টেম্পোরারি স্ট্রিংকে বাইনারি স্ট্রিং-এ কপি করব
- তারপর i-তম ইনডেক্স রিটার্ন করব
উদাহরণ
#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