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>
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