Given a binary string str, the task is to print the numbers of steps required to convert it to one by the following operations:
- If ‘S’ is odd add 1 to it.
- If ‘S’ is even divide it by 2.
Input: str = “1001001”
Input: str = “101110”
Number ‘101110’ is even, after dividing it by 2 we get an odd number ‘10111’ so we will add 1 to it. Then we’ll get ‘11000’ which is even and can be divide three times continuously in a row and get ’11’ which is odd, adding 1 to it will give us ‘100’ which is even and can be divided 2 times in a row. As, a result we get 1.
So 8 times the above two operations were required in this number.
Below is the step by step algorithm to solve this problem:
- Initialize the string S as a binary number.
- If the size of the binary is 1, then the required number of actions will be 0.
- If the last digit is 0, then its an even number so one operation is required to divide it by 2.
- After encountering 1, traverse till you get 0, with every digit one operation will take place.
- After encountering 0 after 1 while traversing, replace 0 by 1 and start from step 4 again.
Below is the implementation of above algorithm:
- Minimum number of given operation required to convert n to m
- Minimum splits required to convert a number into prime segments
- Minimum steps to convert one binary string to other only using negation
- Minimum number of operations required to sum to binary string S
- Minimum operations required to convert a binary string to all 0s or all 1s
- Minimum swaps required to convert one binary string to another
- Minimum given operations required to convert a given binary string to all 1's
- Minimum number of given operations required to convert a permutation into an identity permutation
- Minimum number of given operations required to convert a string to another string
- Minimum number of given powers of 2 required to represent a number
- Largest number N which can be reduced to 0 in K steps
- Number of odd and even results for every value of x in range [min, max] after performing N steps
- Print steps to make a number in form of 2^X - 1
- Find minimum number of steps to reach the end of String
- Number of ways to split a binary number such that every part is divisible by 2
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.