Invertir un número dado

Iniciado por BortizF, 18 Octubre 2017, 06:29 AM

0 Miembros y 1 Visitante están viendo este tema.

BortizF

Hola, chicos!

cómo puedo invertir un número dado, osea, si me dan 3421 que el programa me devuelva:
1243?
gracias...
Programar por programar no tiene sentido, lo que le da sentido a la programación es poder ver más allá. Sentarte en frente de tu máquina y saber que vas a entrar a un mundo diferente, a un mundo más allá de los perjuicios, de los rencores, más allá del odio y la envidia. Es darle vida a algo sin sentido, es amar lo que haces. Esto es un arte, una pasión.

engel lex

basicamente lo que se hace es un ciclo con una división, modulo y multiplicación


(siendo e entrada y s salida)
e: 1020304
s:0

/*ciclo 1*/
s = s + (e mod 10) //esto obtendrá el 4 final, que es el modulo de 10
-- s: 4

s = s*10 //para mover el valor un espacio a la izquierda
-- s: 40

e = e/10 //como son enteros no se guardan decimales
-- e: 102030

/*ciclo 2*/
s = s + (e mod 10) //esto obtendrá el 4 final, que es el modulo de 10
-- s: 40

s = s*10 //para mover el valor un espacio a la izquierda
-- s: 400

e = e/10 //como son enteros no se guardan decimales
-- e: 10203

/*ciclo 3*/
s = s + (e mod 10) //esto obtendrá el 4 final, que es el modulo de 10
-- s: 403

s = s*10 //para mover el valor un espacio a la izquierda
-- s: 4030

e = e/10 //como son enteros no se guardan decimales
-- e: 1020

/**** varios ciclos despues ***/

-- s: 40302010
-- e: 0

s = s/10 // (un factor de correción por el 0 sobrante)



el ciclo termina al la entrada ser 0... ahora intenta hacer el algoritmo y mostrar tu avance
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

BortizF

Muchas gracias. Mira mi avance. Creo que lo hice para ese número y ahora tocará de una forma más genereal.
//#include <stdio.h>

int invierteNum(int num); //prototipo de función

int main(){
 int numero = 1020304;
 int invertido =  0;

 //INVOCA A LA FUNCIÓN PARA INVERTIR EL NÚMERO
 invertido = invierteNum(numero);

 printf("%d", invertido);

 return 0;
}

//FUNCIÓN PARA INVERTIR EL NÚMERO DADO

int invierteNum(int num){
 int invertido = 0;

 while(num > 0){
   invertido = invertido + (num%10);
   invertido = invertido * 10;
   num = num/10;
 }

 return invertido;



}
Programar por programar no tiene sentido, lo que le da sentido a la programación es poder ver más allá. Sentarte en frente de tu máquina y saber que vas a entrar a un mundo diferente, a un mundo más allá de los perjuicios, de los rencores, más allá del odio y la envidia. Es darle vida a algo sin sentido, es amar lo que haces. Esto es un arte, una pasión.

BortizF

#3
Disculpa mi ignorancia. Ya ese programa me sirve con cualquier número xD. Cómo? no sé :v

#include <stdio.h>

int invierteNum(int num); //prototipo de función

int main(){
 int numero = 0;
 int invertido =  0;

 printf("Inserte un numero entero");
 scanf("%d",&numero);

 //INVOCA A LA FUNCIÓN PARA INVERTIR EL NÚMERO
 invertido = invierteNum(numero);

 printf("%d", invertido);

 return 0;
}

//FUNCIÓN PARA INVERTIR EL NÚMERO DADO

int invierteNum(int num){
 int invertido = 0;

 while(num > 0){
   invertido = invertido + (num%10);
   invertido = invertido * 10;
   num = num/10;
 }
 
 invertido = invertido /10;

 return invertido;

}


MUCHAS GRACIAS!!
Programar por programar no tiene sentido, lo que le da sentido a la programación es poder ver más allá. Sentarte en frente de tu máquina y saber que vas a entrar a un mundo diferente, a un mundo más allá de los perjuicios, de los rencores, más allá del odio y la envidia. Es darle vida a algo sin sentido, es amar lo que haces. Esto es un arte, una pasión.