Dado un entero N , la tarea es invertir los dígitos del entero dado usando la recursividad .
Ejemplos:
Entrada: N = 123
Salida: 321
Explicación:
El reverso del número dado es 321.Entrada: N = 12532
Salida: 23521
Explicación:
El reverso del número dado es 23521.
Enfoque: siga los pasos a continuación para resolver el problema:
- Iterar recursivamente cada dígito de N .
- Si el valor actual de N pasado es menor que 10 , devuelve N.
si (num < 10)
devuelve N;
- De lo contrario, después de cada llamada recursiva ( excepto el caso base ), devuelva la función recursiva para la próxima iteración:
return reverse(N/10) + ((N%10)*(pow(10, (piso(log10(abs(N)))))))
donde, floor(log10(abs(x))) da el conteo de dígitos de x
((x%10)*(pow(10, (floor(log10(abs(x))))))) coloca la unidad extraída coloque dígitos (x% 10) en sus posiciones deseadas
A continuación se muestra la implementación del enfoque anterior:
C
// C program for the above approach #include <math.h> #include <stdio.h> #include <stdlib.h> // Function to reverse the digits of // the given integer int reverse(int N) { return ((N <= 9)) ? N : reverse(N / 10) + ((N % 10) * (pow(10, (floor(log10( abs(N))))))); } // Utility function to reverse the // digits of the given integer void reverseUtil(int N) { // Stores reversed integer int result = reverse(N); // Print reversed integer printf("%d", result); } // Driver Code int main() { // Given integer N int N = 123; // Function Call reverseUtil(N); return 0; }
321
Complejidad de tiempo: O(log 10 N)
Espacio auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por notavacillator y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA