Convierta todos los números en el rango [L, R] a número binario

Dados dos números enteros positivos L y R . La tarea es convertir todos los números de L a R en números binarios. 

Ejemplos:

Entrada: L = 1, R = 4
Salida: 
1
10
11
100
Explicación: La representación binaria de los números 1, 2, 3 y 4 son: 
1 = (1) 2
2 = (10) 2
3 = (11) 2
4 = (100) 2

Entrada: L = 2, R = 8
Salida:
10
11
100
101
110
111
1000

 

Enfoque: El problema se puede resolver utilizando el siguiente enfoque.

  • Atraviesa de L a R y convierte cada número a número binario.
  • Guarde cada número e imprímalo al final.

A continuación se muestra la implementación del enfoque anterior.

C++

// C++ code to implement the above approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to convert a number
// to its binary equivalent
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);
 
        // Integer division
        // gives quotient
        num = num / 2;
    }
    reverse(bits.begin(), bits.end());
    return bits;
}
 
// Function to convert all numbers
// in range [L, R] to binary
vector<vector<int> > getAllBinary(int l,
                                  int r)
{
    // Vector to store the binary
    // representations of the numbers
    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;
}
 
// Driver code
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

// Java code to implement the above approach
import java.util.ArrayList;
import java.util.Collections;
 
class GFG {
 
  // Function to convert a number
  // to its binary equivalent
  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);
 
      // Integer division
      // gives quotient
      num = num / 2;
    }
    Collections.reverse(bits);
    return bits;
  }
 
  // Function to convert all numbers
  // in range [L, R] to binary
  public static ArrayList<ArrayList<Integer>> getAllBinary(int l, int r)
  {
 
    // Vector to store the binary
    // representations of the numbers
    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;
  }
 
  // Driver code
  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("");
    }
  }
}
 
// This code is contributed by saurabh_jaiswal.

Python3

# Python 3 code to implement the above approach
 
# Function to convert a number
# to its binary equivalent
def convertToBinary(num):
 
    bits = []
    if (num == 0):
        bits.append(0)
        return bits
 
    while (num != 0):
        bits.append(num % 2)
 
        # Integer division
        # gives quotient
        num = num // 2
 
    bits.reverse()
    return bits
 
# Function to convert all numbers
# in range [L, R] to binary
def getAllBinary(l, r):
 
    # Vector to store the binary
    # representations of the numbers
    binary_nos = []
    for i in range(l, r+1):
        bits = convertToBinary(i)
        binary_nos.append(bits)
 
    return binary_nos
 
# Driver code
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()
 
        # This code is contributed by ukasp.

C#

// C# code to implement the above approach
using System;
using System.Collections.Generic;
 
public class GFG {
 
  // Function to convert a number
  // to its binary equivalent
  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);
 
      // int division
      // gives quotient
      num = num / 2;
    }
    bits.Reverse();
    return bits;
  }
 
  // Function to convert all numbers
  // in range [L, R] to binary
  public static List<List<int>> getAllBinary(int l, int r)
  {
 
    // List to store the binary
    // representations of the numbers
    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;
  }
 
  // Driver code
  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("");
    }
  }
}
 
// This code is contributed by 29AjayKumar

Javascript

<script>
    // JavaScript code to implement the above approach
 
    // Function to convert a number
    // to its binary equivalent
    const convertToBinary = (num) => {
        let bits = [];
        if (num == 0) {
            bits.push(0);
            return bits;
        }
 
        while (num != 0) {
            bits.push(num % 2);
 
            // Integer division
            // gives quotient
            num = parseInt(num / 2);
        }
        bits.reverse()
        return bits;
    }
 
    // Function to convert all numbers
    // in range [L, R] to binary
    const getAllBinary = (l, r) => {
     
        // Vector to store the binary
        // representations of the numbers
        let binary_nos = [];
        for (let i = l; i <= r; i++) {
            let bits = convertToBinary(i);
            binary_nos.push(bits);
        }
        return binary_nos;
    }
 
    // Driver code
    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/>");
    }
 
    // This code is contributed by rakeshsahni
</script>
Producción

10
11
100
101
110
111
1000

Complejidad de tiempo: O(N * LogR) Donde N es el conteo de números en el rango [L, R]
Espacio auxiliar: O(N * logR)

Publicación traducida automáticamente

Artículo escrito por Code_r y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *