Programa Javascript para generar todas las rotaciones de un número

Dado un número entero n , la tarea es generar todos los números de desplazamiento a la izquierda posibles. Un número de desplazamiento a la izquierda es un número que se genera cuando todos los dígitos del número se desplazan una posición a la izquierda y el dígito de la primera posición se desplaza al último.
Ejemplos: 
 

Entrada: n = 123 
Salida: 231 312
Entrada: n = 1445 
Salida: 4451 4514 5144 
 

Acercarse: 
 

  • Suponga que n = 123 .
  • Multiplique n por 10 , es decir , n = n * 10 = 1230 .
  • Agregue el primer dígito al número resultante, es decir , 1230 + 1 = 1231 .
  • Resta (primer dígito) * 10 k del número resultante donde k es el número de dígitos en el número original (en este caso, k = 3).
  • 1231 – 1000 = 231 es el número de desplazamiento a la izquierda del número original.

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

Javascript

<script>
 
    // Javascript implementation of the approach
     
    // Function to return the count of digits of n
    function numberOfDigits(n)
    {
        let cnt = 0;
        while (n > 0) {
            cnt++;
            n = parseInt(n / 10, 10);
        }
        return cnt;
    }
 
    // Function to print the left shift numbers
    function cal(num)
    {
        let digits = numberOfDigits(num);
        let powTen = Math.pow(10, digits - 1);
 
        for (let i = 0; i < digits - 1; i++) {
 
            let firstDigit = parseInt(num / powTen, 10);
 
            // Formula to calculate left shift
            // from previous number
            let left = ((num * 10) + firstDigit)
                - (firstDigit * powTen * 10);
            document.write(left +  " ");
 
            // Update the original number
            num = left;
        }
    }
     
    let num = 1445;
    cal(num);
     
</script>
Producción: 

4451 4514 5144

 

Complejidad de Tiempo: O(log 10 (num))
Espacio Auxiliar: O(1)

Acercarse: 

  • Suponga que n = 123 
  • let temp = str(n) + str(n) es decir, 123123
  • Ahora itere a través de la temperatura y tome una porción de 3 dígitos del índice de iteración de la temperatura, que es 231.
  • Iterar a través de la temperatura hasta que el iterador sea menor que la mitad de la longitud de la temperatura.

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

Javascript

<script>
 
// Function to print the left shift numbers
    function cal(num)
    {  
      var temp  = '' + num
      var len = temp.length
     temp += temp;
    for( let i = 1 ; i*2 <temp.length ; i++){
            console.log(temp.slice(i , i + len ))
    }
      
    }
      
    let num = 1445;
    cal(num);
 </scrip;t

Producción:

4451
4514
5144

Consulte el artículo completo sobre Generar todas las rotaciones de un número para obtener más detalles.

Publicación traducida automáticamente

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