Convert all numbers in range [L, R] to binary number
Given two positive integer numbers L and R. The task is to convert all the numbers from L to R to binary number.
Examples:
Input: L = 1, R = 4
Output:
1
10
11
100
Explanation: The binary representation of the numbers 1, 2, 3 and 4 are:
1 = (1)2
2 = (10)2
3 = (11)2
4 = (100)2
Input: L = 2, R = 8
Output:
10
11
100
101
110
111
1000
Approach: The problem can be solved using following approach.
- Traverse from L to R and convert every number to binary number.
- 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)
{
vector< int > bits;
if (num == 0) {
bits.push_back(0);
return bits;
}
while (num != 0) {
bits.push_back(num % 2);
num = num / 2;
}
reverse(bits.begin(), bits.end());
return bits;
}
vector<vector< int > > getAllBinary( int l,
int r)
{
vector<vector< int > > binary_nos;
for ( int i = l; i <= r; i++) {
vector< int > bits =
convertToBinary(i);
binary_nos.push_back(bits);
}
return binary_nos;
}
int main()
{
int L = 2, R = 8;
vector<vector< int > > binary_nos =
getAllBinary(L, R);
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.util.ArrayList;
import java.util.Collections;
class GFG {
public static ArrayList<Integer> convertToBinary( int num) {
ArrayList<Integer> bits = new ArrayList<Integer>();
if (num == 0 ) {
bits.add( 0 );
return bits;
}
while (num != 0 ) {
bits.add(num % 2 );
num = num / 2 ;
}
Collections.reverse(bits);
return bits;
}
public static ArrayList<ArrayList<Integer>> getAllBinary( int l, int r)
{
ArrayList<ArrayList<Integer>> binary_nos = new ArrayList<ArrayList<Integer>>();
for ( int i = l; i <= r; i++)
{
ArrayList<Integer> bits = convertToBinary(i);
binary_nos.add(bits);
}
return binary_nos;
}
public static void main(String args[])
{
int L = 2 , R = 8 ;
ArrayList<ArrayList<Integer>> binary_nos = getAllBinary(L, R);
for ( int i = 0 ; i < binary_nos.size(); i++) {
for ( int j = 0 ; j < binary_nos.get(i).size(); j++)
System.out.print(binary_nos.get(i).get(j));
System.out.println( "" );
}
}
}
|
Python3
def convertToBinary(num):
bits = []
if (num = = 0 ):
bits.append( 0 )
return bits
while (num ! = 0 ):
bits.append(num % 2 )
num = num / / 2
bits.reverse()
return bits
def getAllBinary(l, r):
binary_nos = []
for i in range (l, r + 1 ):
bits = convertToBinary(i)
binary_nos.append(bits)
return binary_nos
if __name__ = = "__main__" :
L = 2
R = 8
binary_nos = getAllBinary(L, R)
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 {
public static List< int > convertToBinary( int num) {
List< int > bits = new List< int >();
if (num == 0) {
bits.Add(0);
return bits;
}
while (num != 0) {
bits.Add(num % 2);
num = num / 2;
}
bits.Reverse();
return bits;
}
public static List<List< int >> getAllBinary( int l, int r)
{
List<List< int >> binary_nos = new List<List< int >>();
for ( int i = l; i <= r; i++)
{
List< int > bits = convertToBinary(i);
binary_nos.Add(bits);
}
return binary_nos;
}
public static void Main(String []args)
{
int L = 2, R = 8;
List<List< int >> binary_nos = getAllBinary(L, R);
for ( int i = 0; i < binary_nos.Count; i++) {
for ( int j = 0; j < binary_nos[i].Count; j++)
Console.Write(binary_nos[i][j]);
Console.WriteLine( "" );
}
}
}
|
Javascript
<script>
const convertToBinary = (num) => {
let bits = [];
if (num == 0) {
bits.push(0);
return bits;
}
while (num != 0) {
bits.push(num % 2);
num = parseInt(num / 2);
}
bits.reverse()
return bits;
}
const getAllBinary = (l, r) => {
let binary_nos = [];
for (let i = l; i <= r; i++) {
let bits = convertToBinary(i);
binary_nos.push(bits);
}
return binary_nos;
}
let L = 2, R = 8;
let binary_nos = getAllBinary(L, R);
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
10
11
100
101
110
111
1000
Time Complexity: O(N * LogR) Where N is the count of numbers in range [L, R]
Auxiliary Space: O(N * logR)
Last Updated :
24 Dec, 2021
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...