Fecha y hora actual: Domingo 20 Ago 2017 20:23
Índice del Foro

Foros de programación informática, diseño gráfico y Web

En esta comunidad intentaremos dar soporte de programación a todos los niveles, desde principiantes a profesionales de la informática, desarrollo de programas, programación web y mucho más.

Invertir digitos de numeros

Responder al Tema

Índice del Foro > C, C#, Visual C++ > Invertir digitos de numeros

Autor Mensaje
laephy



Registrado: 13 Nov 2011
Mensajes: 9

Mensaje Publicado: Miércoles 19 Jul 2017 22:19

Título del mensaje: Invertir digitos de numeros

Responder citando

Hola,

quisiera invertir de forma ciclica los digitos de un numero entero, por ejemplo el numero 1234 después de la inversión ciclica tendría que quedar 4321.

Código:

int main(){

int num, num_inv;

cout<< "Introduce un numero:";
cin>> num; // num=1234

num_inv=num_inv*10+num%10;
num/=10;
num_inv=num_inv*1000 + num;

cout<<"El resultado es:"<<num_inv; //num_inv=4123
}


Con este código consigo el objetivo, pero solo para numeros de cuatro digitos. Me podeis ayudar para numeros de mas digitos?

Muchas gracias.

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Pedrolo
Usuario Iniciado


Registrado: 07 May 2017
Mensajes: 22

Mensaje Publicado: Viernes 21 Jul 2017 16:34

Título del mensaje: Invertir digitos de numeros

Responder citando

Consigues el objetivo? uy que miedo me das... consigues poner el último dígito al comienzo, pero no inviertes el orden de TODOS los dígitos Guiño

Existe muchas formas de invertir un número, pero la más sencilla quizás es convertir ese número a una cadena y recorrer dicha cadena mientras se crea una nueva de forma inversa.

Luego ya para la gente que sabe dividir, multiplicar y sumar existe otra forma, también usando un bucle :

Código:
  1. int num, num_inv=0; // En C/C++ no existe el valor cero por defecto
  2.  
  3. cout<< "Introduce un numero:";
  4. cin>> num; // num=1234
  5.  
  6. while(num > 0){ // Cuando ya no queden digitos en el numero acaba el bucle
  7. num_inv = num_inv *10 + (num % 10); // Multiplicamos por diez el resultado y sumamos el ultimo digito del numero
  8. num = num/10; // Reducimos en un digito el numero, quitando siempre el ultimo de atras
  9. }
  10.  
  11. // num_inv = 0 + 4 = 4
  12. // num = 123
  13.  
  14. // num_inv = 40 + 3 = 43
  15. // num = 12
  16.  
  17. // num_inv = 430 + 2 = 432
  18. // num = 1
  19.  
  20. // num_inv = 4320 + 1 = 4321
  21. // num = 0
  22.  
  23. cout<<"El resultado es:" << num_inv; //num_inv=4123

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Responder al Tema
Mostrar mensajes anteriores:   
Ir a:  
Todas las horas están en GMT + 1 Hora

Temas relacionados

Tema Autor Foros Respuestas Publicado
El foro no contiene ningún mensaje nuevo

Comprobar números y marcarlos

allspace PHP 0 Lunes 15 Feb 2016 12:47 Ver último mensaje
El tema está bloqueado: no pueden editarse ni agregar mensajes.

Duda con programa de suma de números por argume...

jamatbar Java 2 Martes 20 Oct 2015 10:26 Ver último mensaje
El foro no contiene ningún mensaje nuevo

PROGRAMA ORDENAR NUMEROS

ESPIA Java 2 Sábado 02 May 2015 05:27 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Ordenar los números mientras se van generando.-

DanielC C, C#, Visual C++ 3 Jueves 18 Sep 2014 00:02 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Mayor de n numeros de un array [Recursivo] Ayuda?

Gruky Java 5 Miércoles 14 May 2014 20:32 Ver último mensaje
Panel de Control
No puede crear mensajes, No puede responder temas, No puede editar sus mensajes, No puede borrar sus mensajes, No puede votar en encuestas,