Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/07/2011, 08:17
CalgaryCorpus
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: invertir numeros

Si consideras numeros que pueden contenerse en un entero (o entero largo), en realidad los arreglos no son necesarios para resolver ese particular problema.

Si solo deseas escribir el nro invertido, sin almacenarlo, hacer un ciclo calculando el modulo 10 te da el ultimo digito, dividirlo por 10 te da el trozo izquierdo. Si deseas construir el nro invertido, bastaria con agregar la aritmetica (multiplicar x 10 y sumar el nuevo nro).

Algo parecido a (siendo "n" el nro, positivo)

Código C++:
Ver original
  1. inv = 0;
  2.   while( n >0 )
  3.   {
  4.       d = n % 10;
  5.       printf( "%d", d );  // si se desea imprimir el numero digito a digito
  6.  
  7.       inv = 10 * inv + d;  // no es necesario si no se quiere almacenar
  8.       n = n / 10;
  9.   }
  10.  
  11.   printf( "\nNro invertido: %d\n", inv );

Para números de largo mayor al que puede contenerse en un entero, si se hace necesario usar arreglos y olvidarse finalmente que se trata de numeros. De hecho, el codigo anterior podría fallar si el numero invertido (almacenado en la variable inv) no cabe en un entero.