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