Given a positive integer n, print all n-bit binary numbers having more 1’s than 0’s for any prefix of the number.
Input : n = 2 Output : 11 10 Input : n = 4 Output : 1111 1110 1101 1100 1011 1010
A simple but not efficient solution will be to generate all N-bit binary numbers and print those numbers that satisfy the conditions. The time complexity of this solution is exponential.
An efficient solution is to generate only those N-bit numbers that satisfy the given conditions. We use recursion. At each point in the recursion, we append 0 and 1 to the partially formed number and recur with one less digit.
1111 1110 1101 1100 1011 1010
This article is contributed by Pranav. 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 write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
GeeksforGeeks has prepared a complete interview preparation course with premium videos, theory, practice problems, TA support and many more features. Please refer Placement 100 for details
- Prefixes with more a than b
- Print all distinct integers that can be formed by K numbers from a given array of N numbers
- Shift all prefixes by given lengths
- Python | Count all prefixes in given string with greatest frequency
- Check whether two strings can be made equal by increasing prefixes
- Print all the Paths of a Binary Tree whose XOR is non-zero
- Print Palindromic Paths of Binary tree
- Print all Palindromic Levels Of a Binary Tree
- Print all Coprime path of a Binary Tree
- Print all Prime Levels of a Binary Tree
- Print Bottom-Right View of a Binary Tree
- Print Binary Search Tree in Min Max Fashion
- Print path between any two nodes in a Binary Tree | Set 2
- How will you print numbers from 1 to 100 without using loop? | Set-2
- How will you print numbers from 1 to 100 without using loop?