Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Función que toma un número y lo devuelve con los dígitos invertidos

Estas en el tema de Función que toma un número y lo devuelve con los dígitos invertidos en el foro de C/C++ en Foros del Web. Bueno... hice esta función (lo incluí en un sencillo programa), y me gustaría saber si hay una forma más óptima de hacer lo mismo: @import ...
  #1 (permalink)  
Antiguo 26/05/2011, 18:18
 
Fecha de Ingreso: abril-2011
Mensajes: 224
Antigüedad: 13 años
Puntos: 8
Pregunta Función que toma un número y lo devuelve con los dígitos invertidos

Bueno... hice esta función (lo incluí en un sencillo programa), y me gustaría saber si hay una forma más óptima de hacer lo mismo:

Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3. int inversa(int num);
  4.  
  5. int main()
  6. {
  7.     int numero;
  8.    
  9.     printf("Escriba un numero: ");
  10.     scanf("%d", &numero);
  11.     numero = inversa(numero);
  12.     printf("\nLa inversa de numero es %d\n", numero);
  13.     getch();
  14.     return 0;
  15. }
  16.  
  17. int inversa(int num)
  18. {
  19.     int n1 = num / 1000000;
  20.     int n2 = (num % 1000000) / 100000;
  21.     int n3 = ((num % 1000000) % 100000) / 10000;
  22.     int n4 = (((num % 1000000) % 100000) % 10000) / 1000;
  23.     int n5 = ((((num % 1000000) % 100000) % 10000) % 1000) / 100;
  24.     int n6 = (((((num % 1000000) % 100000) % 10000) % 1000) % 100) / 10;
  25.     int n7 = (((((num % 1000000) % 100000) % 10000) % 1000) % 100) % 10;
  26.    
  27.     return (n7 * 1000000) + (n6 * 100000) + (n5 * 10000) + (n4 * 1000) +
  28.            (n3 * 100) + (n2 * 10) + n1;
  29. }

Saludos! ^^
  #2 (permalink)  
Antiguo 27/05/2011, 00:55
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 2 meses
Puntos: 89
Respuesta: Función que toma un número y lo devuelve con los dígitos invertidos

Puedes convertir el número a String, darle la vuelta y volverlo a convertir a número. Además, así te valdrá para números de cualquier número de cifras.

Tu método no está bien porque el 11 (por ejemplo) al darle la vuelta tiene que ser 11 y no 1100000, que es lo que te daría a tí.
  #3 (permalink)  
Antiguo 27/05/2011, 01:33
 
Fecha de Ingreso: abril-2011
Mensajes: 224
Antigüedad: 13 años
Puntos: 8
Respuesta: Función que toma un número y lo devuelve con los dígitos invertidos

Cita:
Iniciado por Heimish2000 Ver Mensaje
Puedes convertir el número a String, darle la vuelta y volverlo a convertir a número. Además, así te valdrá para números de cualquier número de cifras.

Tu método no está bien porque el 11 (por ejemplo) al darle la vuelta tiene que ser 11 y no 1100000, que es lo que te daría a tí.
Ohh... gracias... y cómo podría usar un String?

Saludos!
  #4 (permalink)  
Antiguo 27/05/2011, 02:05
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 2 meses
Puntos: 89
Respuesta: Función que toma un número y lo devuelve con los dígitos invertidos

¿Cómo que cómo podrías utilizarlo?
  #5 (permalink)  
Antiguo 27/05/2011, 10:19
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Función que toma un número y lo devuelve con los dígitos invertidos

Código C:
Ver original
  1. int invertir(int numero)
  2. {
  3.     int inverso = 0;
  4.     while (numero != 0) {
  5.             inverso = inverso * 10 + numero &#37; 10;
  6.             numero = numero / 10;
  7.     }
  8.     return inverso;
  9. }

Etiquetas: devuelve, invertidos, toma
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:06.