Related Articles

# Find i’th Index character in a binary string obtained after n iterations

• Difficulty Level : Medium
• Last Updated : 24 May, 2021

Given a decimal number m, convert it into a binary string and apply n iterations. In each iteration, 0 becomes “01” and 1 becomes “10”. Find the (based on indexing) index character in the string after the nth iteration.

Examples:

```Input : m = 5, n = 2, i = 3
Output : 1

Input :m = 3, n = 3, i = 6
Output : 1```

Recommended: Please solve it on “PRACTICE” first, before moving on to the solution.

1. Change a decimal number into a binary and store it in string s.
2. Run loop n times in each iteration. Run another loop of string length s to convert 0 to “01” and 1 to “10” and store in another string s1. After completion of each iteration, assign string s1 to s.
3. Finally, return the value of the ith index in string s.

## C++

 `// C++ Program to find ith character in``// a binary string.``#include ``using` `namespace` `std;` `// Function to store binary Representation``void` `binary_conversion(string &s, ``int` `m) {``  ``while` `(m) {``    ``int` `tmp = m % 2;``    ``s += tmp + ``'0'``;``    ``m = m / 2;``  ``}``  ``reverse(s.begin(), s.end());``}` `// Function to find ith character``int` `find_character(``int` `n, ``int` `m, ``int` `i) {` `  ``string s;` `  ``// Function to change decimal to binary``  ``binary_conversion(s, m);` `  ``string s1 = ``""``;``  ``for` `(``int` `x = 0; x < n; x++) {``    ``for` `(``int` `y = 0; y < s.length(); y++) {``      ``if` `(s[y] == ``'1'``)``        ``s1 += ``"10"``;``      ``else``        ``s1 += ``"01"``;     ``    ``}` `    ``// Assign s1 string in s string``    ``s = s1;``    ``s1 = ``""``;``  ``}``  ``return` `s[i] - ``'0'``;``}` `// Driver Function``int` `main() {``  ``int` `m = 5, n = 2, i = 8;``  ``cout << find_character(n, m, i);``  ``return` `0;``}`

## Java

 `// Java Program to find ith``// character in a binary String.``import` `java.io.*;``import` `java.util.Arrays;` `class` `GFG``{``static` `String s = ``""``;``static` `String ReverseString(String s)``{``    ``char``[] arr = s.toCharArray();``    ``for``(``int` `i = ``0``;``            ``i < arr.length / ``2``; i++)``    ``{``        ``char` `temp = arr[i];``        ``arr[i] = arr[arr.length - i -``1``];``        ``arr[arr.length - i - ``1``] = temp;``    ``}``    ``return` `new` `String(arr);``}` `// Function to store``// binary Representation``static` `void` `binary_conversion(``int` `m)``{``    ``while` `(m != ``0``)``    ``{``        ``int` `tmp = m % ``2``;``        ``s += Integer.toString(tmp);``        ``m = (``int``)(m / ``2``);``    ``}``    ` `    ``s = ReverseString(s);``}` `// Function to find``// ith character``static` `int` `find_character(``int` `n,``                          ``int` `m,``                          ``int` `i)``{    ``    ``// Function to change``    ``// decimal to binary``    ``binary_conversion(m);` `    ``String s1 = ``""``;``    ``for` `(``int` `x = ``0``; x < n; x++)``    ``{``        ``for` `(``int` `y = ``0``;``                 ``y < s.length(); y++)``        ``{``            ``if` `(s.charAt(y) == ``'1'``)``            ``s1 += ``"10"``;``            ``else``            ``s1 += ``"01"``;    ``        ``}``        ` `        ``// Assign s1 String``        ``// in s String``        ``s = s1;``        ``s1 = ``""``;``    ``}``    ` `    ``return` `s.charAt(i) - ``'0'``;``}` `// Driver Code``public` `static` `void` `main(String args[])``{``    ``int` `m = ``5``, n = ``2``, i = ``8``;``    ``System.out.print(``               ``find_character(n, m, i));``}``}` `// This code is contributed by``// Manish Shaw(manishshaw1)`

## Python3

 `# Python3 Program to find ith character in``# a binary string.` `# Function to store binary Representation``def` `binary_conversion(s, m):``    ``while``(m):``        ``temp ``=` `m ``%` `2``        ``s ``+``=` `str``(temp)``        ``m ``=` `m ``/``/` `2``    ` `    ``return` `s[::``-``1``]` `# Function to find ith character``def` `find_character(n, m, i):``    ``s ``=` `""`  `# Function to change decimal to binary``    ``s ``=` `binary_conversion(s, m)``    ``s1 ``=` `""` `    ``for` `x ``in` `range``(n):``        ``for` `j ``in` `range``(``len``(s)):``            ``if` `s[j] ``=``=` `"1"``:``                ``s1 ``+``=` `"10"``            ``else``:``                ``s1 ``+``=` `"01"` `    ``# Assign s1 string in s string    ``        ``s ``=` `s1``        ``s1 ``=` `""``    ``e ``=` `ord``(s[i])``    ``r ``=` `ord``(``'0'``)` `    ``return` `e``-``r` `# Driver code``m, n, i ``=` `5``, ``2``, ``8` `print``(find_character(n,m,i))` `# This code is contributed by mohit kumar 29`

## C#

 `// C# Program to find ith``// character in a binary string.``using` `System;` `class` `GFG``{``    ``static` `string` `ReverseString(``string` `s)``    ``{``        ``char``[] arr = s.ToCharArray();``        ``Array.Reverse(arr);``        ``return` `new` `string``(arr);``    ``}``    ` `    ``// Function to store``    ``// binary Representation``    ``static` `void` `binary_conversion(``ref` `string` `s,``                                  ``int` `m)``    ``{``        ``while` `(m != 0)``        ``{``            ``int` `tmp = m % 2;``            ``s += tmp.ToString();``            ``m = (``int``)(m / 2);``        ``}``        ` `        ``s = ReverseString(s);``    ``}``    ` `    ``// Function to find``    ``// ith character``    ``static` `int` `find_character(``int` `n,``                              ``int` `m, ``int` `i)``    ``{    ``        ``string` `s = ``""``;` `        ``// Function to change``        ``// decimal to binary``        ``binary_conversion(``ref` `s, m);` `        ``string` `s1 = ``""``;``        ``for` `(``int` `x = 0; x < n; x++)``        ``{``            ``for` `(``int` `y = 0; y < s.Length; y++)``            ``{``                ``if` `(s[y] == ``'1'``)``                ``s1 += ``"10"``;``                ``else``                ``s1 += ``"01"``;    ``            ``}``            ` `            ``// Assign s1 string``            ``// in s string``            ``s = s1;``            ``s1 = ``""``;``        ``}``        ` `        ``return` `s[i] - ``'0'``;``    ``}` `    ``// Driver Code``    ``static` `void` `Main()``    ``{``        ``int` `m = 5, n = 2, i = 8;``        ``Console.Write(find_character(n, m, i));``    ``}``}` `// This code is contributed by``// Manish Shaw(manishshaw1)`

## Javascript

 ``
Output:
`1`

Refer Set-2 for an optimized solution.

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

My Personal Notes arrow_drop_up