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

dar vuelta un numero

Estas en el tema de dar vuelta un numero en el foro de C/C++ en Foros del Web. Hola que tal? soy principiante y en la facultad me dieron un ejercicio para hacer que dice que al ingresar un numero por ejemplo 123 ...
  #1 (permalink)  
Antiguo 13/08/2013, 11:14
 
Fecha de Ingreso: septiembre-2010
Mensajes: 101
Antigüedad: 13 años, 7 meses
Puntos: 0
dar vuelta un numero

Hola que tal? soy principiante y en la facultad me dieron un ejercicio para hacer
que dice que al ingresar un numero

por ejemplo 123

devuelva 321

osea que lo de vuelta

es un entero, no tengo la mas minima idea de como hacer

quisiera que me den una mano o que cuenta tengo que hacer para sacar, no necesito el codigo sino COMO se hace eso.
no quiero que me lo hagan y yo tenga que copiar y pegar solo necesito saber la formula, debe haber alguna
  #2 (permalink)  
Antiguo 13/08/2013, 11:29
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 9 meses
Puntos: 55
Respuesta: dar vuelta un numero

usa la funcion strrev()
  #3 (permalink)  
Antiguo 13/08/2013, 11:35
 
Fecha de Ingreso: septiembre-2010
Mensajes: 101
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: dar vuelta un numero

sucede que eso no vimos todavia, lo mas probable es que tenga que hacerlo de una manera mas "manual"
  #4 (permalink)  
Antiguo 13/08/2013, 11:49
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 11 años, 9 meses
Puntos: 28
Respuesta: dar vuelta un numero

Estas en C o C++?
  #5 (permalink)  
Antiguo 13/08/2013, 11:54
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: dar vuelta un numero

Es facil:
Tienes dos numeros a ,b. Cuando arrancas a equivale al numero que queres dar vuelta y b esta en cero.

Lo que tenes que hacer es quitarle la unidad a "a" y poner ese digito como unidad en b. Ejemplo:

Paso 0:
a = 123
B = 0

Paso 1:
a = 12
b = 3

Paso 2:
a = 1
b = 32

Paso 3:
a = 0
b = 321

Ahora como realizamos cada operacion?
El digito que vamos a extraer de "a" lo podemos facilmente optener con el operador modulo %. Usando modulo 10.

d = a % 10;

Luego podemos devidir a "a" por 10 para quitarlo.

a = a / 10;


Por ultimo se lo tenemos que agregar a b. Esto es muy facil. Multiplicamos por 10 y le sumamos el digito:

b = b * 10 + d;


Ahora deberiamos iterar todas la vecesn que haga falta. Para ser mas explicito hasta que a sea igual a cero.

Espero que se entienda. Trata de recompilar todo lo que te dije en un codigo.

Saludos
  #6 (permalink)  
Antiguo 13/08/2013, 13:50
 
Fecha de Ingreso: septiembre-2010
Mensajes: 101
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: dar vuelta un numero

estoy en C
  #7 (permalink)  
Antiguo 13/08/2013, 13:54
 
Fecha de Ingreso: septiembre-2010
Mensajes: 101
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: dar vuelta un numero

El digito que vamos a extraer de "a" lo podemos facilmente optener con el operador modulo %. Usando modulo 10.

d = a % 10;

Luego podemos devidir a "a" por 10 para quitarlo.

a = a / 10;


Por ultimo se lo tenemos que agregar a b. Esto es muy facil. Multiplicamos por 10 y le sumamos el digito:

b = b * 10 + d;



no entendi una goma eso jajaja

se que usas el % (mod) pero no entiendo como lo das vuelta, osea si ahi entra 541 , sale 145?
no entendi bien ese pseudodigo explicativo que usaste
  #8 (permalink)  
Antiguo 13/08/2013, 14:07
 
Fecha de Ingreso: septiembre-2010
Mensajes: 101
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: dar vuelta un numero

igual lo estoy probando aver que sale!!
  #9 (permalink)  
Antiguo 13/08/2013, 14:23
 
Fecha de Ingreso: septiembre-2010
Mensajes: 101
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: dar vuelta un numero

ya me salio
adjunto el codigo por si alguien quiere saber como lo hice
Código C:
Ver original
  1. #include <stdio.h>
  2. #include <Windows.h>
  3. int invertirNumero(int a);
  4. //ejercicio de dar vuelta un numero o invertirlo
  5. int main(){
  6.  
  7.     int a;
  8.     int b = 0;
  9.     scanf("%d",&a);
  10.     b = invertirNumero(a);
  11.     printf(" numero invertido es : %d ", b);
  12.  
  13.     system("pause");
  14.     return 0;
  15. }
  16.  
  17. int invertirNumero( int a )
  18. {
  19.     int b = 0;
  20.     while( a > 0)
  21.     {
  22.         b = b * 10 +(a%10);
  23.         a= a / 10;
  24.     }
  25.     return b;
  26. }

consiste en ir dividiendo el numero entre 10, e ir acumulando el numero invertido, en una variable

Etiquetas: numero
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 16:54.