Genere un número tal que la frecuencia de cada dígito sea el dígito multiplicado por la frecuencia en el número dado

Dado un número N que contiene dígitos del 1 al 9 únicamente. La tarea es generar un nuevo número usando el número N tal que la frecuencia de cada dígito en el nuevo número sea igual a la frecuencia de ese dígito en N multiplicada por el dígito mismo.
Nota : Los dígitos del nuevo número deben estar en orden creciente.
Ejemplos
 

Entrada : N = 312 
Salida : 122333 
Explicación : La salida contiene el dígito 1 una vez, el dígito 2 dos veces y el dígito 3 tres veces.
Entrada : N = 525 
Salida : 225555555555 
Explicación : La salida contiene el dígito 2 dos veces y el dígito 5 diez veces. 5 es diez veces porque su frecuencia es 2 en el entero dado. 
 

La idea es almacenar el conteo o la frecuencia de los dígitos en el número dado N usando una array de conteo o hash. Ahora, para cada dígito, agréguelo al nuevo número, K número de veces donde K es igual a su frecuencia en la array de conteo multiplicada por el dígito mismo.
A continuación se muestra la implementación del enfoque anterior: 
 

C++

// CPP program to print a number such that the
//  frequency of each digit in the new number is
// is equal to its frequency in the given number
// multiplied by the digit itself.
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to print such a number
void printNumber(int n)
{
    // initializing a hash array
    int count[10] = { 0 };
 
    // counting frequency of the digits
    while (n) {
        count[n % 10]++;
        n /= 10;
    }
 
    // printing the new number
    for (int i = 1; i < 10; i++) {
        for (int j = 0; j < count[i] * i; j++)
            cout << i;
    }
}
 
// Driver code
int main()
{
    int n = 3225;
 
    printNumber(n);
 
    return 0;
}

Java

// Java program to print a number such that the
// frequency of each digit in the new number is
// is equal to its frequency in the given number
// multiplied by the digit itself.
 
import java.io.*;
 
class GFG {
  
// Function to print such a number
static void printNumber(int n)
{
    // initializing a hash array
    int count[] = new int[10];
 
    // counting frequency of the digits
    while (n>0) {
        count[n % 10]++;
        n /= 10;
    }
 
    // printing the new number
    for (int i = 1; i < 10; i++) {
        for (int j = 0; j < count[i] * i; j++)
            System.out.print(i);
    }
}
 
// Driver code
 
    public static void main (String[] args) {
        int n = 3225;
 
    printNumber(n);
    }
}
// This code is contributed by inder_verma

Python3

# Python 3 program to print a number such that the
# frequency of each digit in the new number is
# is equal to its frequency in the given number
# multiplied by the digit itself.
 
# Function to print such a number
def printNumber(n):
 
    # initializing a hash array
    count = [0]*10
 
    # counting frequency of the digits
    while (n) :
        count[n % 10] += 1
        n //= 10
 
    # printing the new number
    for i in range(1,10) :
        for j in range(count[i] * i):
            print(i,end="")
 
# Driver code
if __name__ == "__main__":
    n = 3225
 
    printNumber(n)
     
# This code is contributed by
# ChitraNayal

C#

// C# program to print a number such
// that the frequency of each digit
// in the new number is equal to its
// frequency in the given number
// multiplied by the digit itself.
using System;
 
class GFG
{
 
// Function to print such a number
static void printNumber(int n)
{
    // initializing a hash array
    int []count = new int[10];
 
    // counting frequency of
    // the digits
    while (n > 0)
    {
        count[n % 10]++;
        n /= 10;
    }
 
    // printing the new number
    for (int i = 1; i < 10; i++)
    {
        for (int j = 0;
                 j < count[i] * i; j++)
            Console.Write(i);
    }
}
 
// Driver code
public static void Main ()
{
    int n = 3225;
 
    printNumber(n);
}
}
 
// This code is contributed
// by inder_verma

PHP

<?php
// PHP program to print a number such
// that the frequency of each digit
// in the new number is equal to its
// frequency in the given number
// multiplied by the digit itself.
 
// Function to print such a number
function printNumber($n)
{
    // initializing a hash array
    $count = array();
    for($i = 0; $i<= 10; $i++)
        $count[$i] = 0;
         
    // counting frequency of the digits
    while ($n)
    {
        $count[$n % 10]++;
        $n /= 10;
    }
 
    // printing the new number
    for ($i = 1; $i < 10; $i++)
    {
        for ($j = 0;
             $j < $count[$i] * $i; $j++)
            echo $i;
    }
}
 
// Driver code
$n = 3225;
 
printNumber($n);
 
// This code is contributed
// by Akanksha Rai(Abby_akku)

Javascript

<script>
 
// JavaScript program to print
// a number such that the
// frequency of each digit
// in the new number is
// is equal to its frequency
// in the given number
// multiplied by the digit itself.
 
 
// Function to print such a number
function printNumber(n)
{
    // initializing a hash array
    let count = new Uint8Array(10);
 
    // counting frequency of the digits
    while (n) {
        count[n % 10]++;
        n = Math.floor(n / 10);
    }
 
    // printing the new number
    for (let i = 1; i < 10; i++) {
        for (let j = 0; j < count[i] * i; j++)
            document.write(i);
    }
}
 
// Driver code
 
    let n = 3225;
 
    printNumber(n);
 
 
// This code is contributed by Surbhi Tyagi.
 
</script>
Producción: 

222233355555

 

Complejidad de tiempo: O (log 10 n), donde n es el número entero dado.
Espacio auxiliar: O(1), no se requiere espacio adicional, por lo que es una constante.

Publicación traducida automáticamente

Artículo escrito por rupesh_rao 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 *