Binary numbers of N digits
Given a positive integer number N. The task is to generate all the binary numbers of N digits. These binary numbers should be in ascending order.
Examples:
Input: 2
Output:
00
01
10
11
Explanation: These 4 are the only binary numbers having 2 digits.
Input: 3
Output:
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
Approach: For any digit length N, there will be 2N binary numbers.
- Therefore traverse from 0 to 2N and convert every number to binary.
- Store each number and print it at the end.
Below is the implementation of the above approach.
C++
#include <bits/stdc++.h>
using namespace std;
vector< int > convertToBinary( int num,
int length)
{
vector< int > bits(length, 0);
if (num == 0) {
return bits;
}
int i = length - 1;
while (num != 0) {
bits[i--] = (num % 2);
num = num / 2;
}
return bits;
}
vector<vector< int > > getAllBinary( int n)
{
vector<vector< int > > binary_nos;
for ( int i = 0; i < pow (2, n); i++) {
vector< int > bits =
convertToBinary(i, n);
binary_nos.push_back(bits);
}
return binary_nos;
}
int main()
{
int N = 3;
vector<vector< int > > binary_nos =
getAllBinary(N);
for ( int i = 0; i < binary_nos.size();
i++) {
for ( int j = 0;
j < binary_nos[i].size(); j++)
cout << binary_nos[i][j];
cout << endl;
}
return 0;
}
|
Java
import java.io.*;
class GFG {
static int [] convertToBinary( int num,
int length)
{
int [] bits = new int [length];
if (num == 0 ) {
return bits;
}
int i = length - 1 ;
while (num != 0 ) {
bits[i--] = (num % 2 );
num = num / 2 ;
}
return bits;
}
static int [][] getAllBinary( int n)
{
int [][] binary_nos = new int [( int )Math.pow( 2 ,n)][];
int k = 0 ;
for ( int i = 0 ; i < Math.pow( 2 , n); i++) {
int [] bits = convertToBinary(i, n);
binary_nos[k++]= bits;
}
return binary_nos;
}
public static void main (String[] args)
{
int N = 3 ;
int [][] binary_nos = getAllBinary(N);
for ( int i = 0 ; i < binary_nos.length; i++) {
for ( int j = 0 ; j < binary_nos[i].length; j++)
System.out.print(binary_nos[i][j]);
System.out.println();
}
}
};
|
Python3
def convertToBinary(num,
length):
bits = [ 0 ] * (length)
if (num = = 0 ):
return bits
i = length - 1
while (num ! = 0 ):
bits[i] = (num % 2 )
i - = 1
num = num / / 2
return bits
def getAllBinary(n):
binary_nos = []
for i in range ( pow ( 2 , n)):
bits = convertToBinary(i, n)
binary_nos.append(bits)
return binary_nos
if __name__ = = "__main__" :
N = 3
binary_nos = getAllBinary(N)
for i in range ( len (binary_nos)):
for j in range ( len (binary_nos[i])):
print (binary_nos[i][j], end = "")
print ()
|
C#
using System;
using System.Collections.Generic;
public class GFG
{
static List< int > convertToBinary( int num, int length) {
List< int > bits = new List< int >();
if (num == 0) {
bits.Add(0);
bits.Add(0);
bits.Add(0);
return bits;
}
int i = length - 1;
while (num != 0) {
bits.Add(num % 2);
num = num / 2;
}
while (bits.Count<3)
bits.Add(0);
return bits;
}
static List<List< int >> getAllBinary( int n) {
List<List< int >> binary_nos = new List<List< int >>();
for ( int i = 0; i < Math.Pow(2, n); i++) {
List< int > bits = convertToBinary(i, n);
binary_nos.Add(bits);
}
return binary_nos;
}
public static void Main(String[] args) {
int N = 3;
List<List< int >> binary_nos = getAllBinary(N);
foreach ( var st in binary_nos){
foreach ( var s in st){
Console.Write(s);
}
Console.WriteLine();
}
}
}
|
Javascript
<script>
const convertToBinary = (num, length) => {
let bits = new Array(length).fill(0);
if (num == 0) {
return bits;
}
let i = length - 1;
while (num != 0) {
bits[i--] = (num % 2);
num = parseInt(num / 2);
}
return bits;
}
const getAllBinary = (n) => {
let binary_nos = [];
for (let i = 0; i < parseInt(Math.pow(2, n)); i++) {
let bits = convertToBinary(i, n);
binary_nos.push(bits);
}
return binary_nos;
}
let N = 3;
let binary_nos = getAllBinary(N);
for (let i = 0; i < binary_nos.length;
i++) {
for (let j = 0;
j < binary_nos[i].length; j++)
document.write(binary_nos[i][j]);
document.write( "<br/>" );
}
</script>
|
Output
000
001
010
011
100
101
110
111
Time Complexity: O(2N)
Auxiliary Space: O(2N)
Last Updated :
13 Jan, 2022
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...