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++
// C++ code to implement above approach#include <bits/stdc++.h>using namespace std;// Function to convert number// to binary of N bitsvector<int> convertToBinary(int num, int length){ // Vector to store the number vector<int> bits(length, 0); if (num == 0) { return bits; } int i = length - 1; while (num != 0) { bits[i--] = (num % 2); // Integer division // gives quotient num = num / 2; } return bits;}// Function to generate all// N bit binary numbersvector<vector<int> > getAllBinary(int n){ vector<vector<int> > binary_nos; // Loop to generate the binary numbers for (int i = 0; i < pow(2, n); i++) { vector<int> bits = convertToBinary(i, n); binary_nos.push_back(bits); } return binary_nos;}// Driver codeint 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
// Java code for the above approachimport java.io.*;class GFG { // Function to convert number // to binary of N bits static int[] convertToBinary(int num, int length) { // Vector to store the number int[] bits = new int[length]; if (num == 0) { return bits; } int i = length - 1; while (num != 0) { bits[i--] = (num % 2); // Integer division // gives quotient num = num / 2; } return bits; } // Function to generate all // N bit binary numbers static int[][] getAllBinary(int n) { int[][] binary_nos = new int[(int)Math.pow(2,n)][]; int k = 0; // Loop to generate the binary numbers for (int i = 0; i < Math.pow(2, n); i++) { int[] bits = convertToBinary(i, n); binary_nos[k++]= bits; } return binary_nos; } // Driver code 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(); } }};// This code is contributed by Potta Lokesh |
Python3
# Python 3 code to implement above approach# Function to convert number# to binary of N bitsdef convertToBinary(num, length): # Vector to store the number bits = [0]*(length) if (num == 0): return bits i = length - 1 while (num != 0): bits[i] = (num % 2) i -= 1 # Integer division # gives quotient num = num // 2 return bits# Function to generate all# N bit binary numbersdef getAllBinary(n): binary_nos = [] # Loop to generate the binary numbers for i in range(pow(2, n)): bits = convertToBinary(i, n) binary_nos.append(bits) return binary_nos# Driver codeif __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() # This code is contributed by ukasp. |
C#
// C# code for the above approachusing System;using System.Collections.Generic;public class GFG { // Function to convert number // to binary of N bits static List<int> convertToBinary(int num, int length) { // List to store the number 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); // int division // gives quotient num = num / 2; } while(bits.Count<3) bits.Add(0); return bits; } // Function to generate all // N bit binary numbers static List<List<int>> getAllBinary(int n) { List<List<int>> binary_nos = new List<List<int>>(); // Loop to generate the binary numbers for (int i = 0; i < Math.Pow(2, n); i++) { List<int> bits = convertToBinary(i, n); binary_nos.Add(bits); } return binary_nos; } // Driver code 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(); } }}// This code is contributed by Rajput-Ji |
Javascript
<script> // JavaScript code to implement above approach // Function to convert number // to binary of N bits const convertToBinary = (num, length) => { // Vector to store the number let bits = new Array(length).fill(0); if (num == 0) { return bits; } let i = length - 1; while (num != 0) { bits[i--] = (num % 2); // Integer division // gives quotient num = parseInt(num / 2); } return bits; } // Function to generate all // N bit binary numbers const getAllBinary = (n) => { let binary_nos = []; // Loop to generate the binary numbers for (let i = 0; i < parseInt(Math.pow(2, n)); i++) { let bits = convertToBinary(i, n); binary_nos.push(bits); } return binary_nos; } // Driver code 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/>"); } // This code is contributed by rakeshsahni</script> |
Output
000 001 010 011 100 101 110 111
Time Complexity: O(2N)
Auxiliary Space: O(2N)
Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!



