Given a number n, write a function that generates and prints all binary numbers with decimal values from 1 to n.
Input: n = 2 Output: 1, 10 Input: n = 5 Output: 1, 10, 11, 100, 101
A simple method is to run a loop from 1 to n, call decimal to binary inside the loop.
Following is an interesting method that uses queue data structure to print binary numbers. Thanks to Vivek for suggesting this approach.
1) Create an empty queue of strings
2) Enqueue the first binary number “1” to queue.
3) Now run a loop for generating and printing n binary numbers.
……a) Dequeue and Print the front of queue.
……b) Append “0” at the end of front item and enqueue it.
……c) Append “1” at the end of front item and enqueue it.
Following is implementation of above algorithm.
1 10 11 100 101 110 111 1000 1001 1010
This article is contributed by Abhishek. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above
- Diameter of a Binary Tree in O(n) [A new method]
- Iterative Method to find Height of Binary Tree
- Iterative Method To Print Left View of a Binary Tree
- Print a Binary Tree in Vertical Order | Set 2 (Map based Method)
- Generate n-bit Gray Codes
- Rearrange numbers in an array such that no two adjacent numbers are same
- Total number of possible Binary Search Trees and Binary Trees with n keys
- Binary Tree to Binary Search Tree Conversion
- Vertical Sum in a given Binary Tree | Set 1
- Diameter of a Binary Tree
- Bottom View of a Binary Tree
- Diagonal Traversal of Binary Tree
- Print Right View of a Binary Tree
- Serialize and Deserialize a Binary Tree
- Check if a given Binary Tree is SumTree
Improved By : shrikanth13