Programación General => C/C++ => Mensaje iniciado por: pablo_ivan57 en Martes 24 de Julio de 2007, 04:43
Título: Problema Con Un Ejercicio
Publicado por: pablo_ivan57 en Martes 24 de Julio de 2007, 04:43
Hola a todos, bueno me propusieron un programa que dice lo siguiente:
Ingreso la cantidad de dígitos del número que voy a ingresar Luego ingreso el numero.Ejm 2435
Ahora tengo que ver si ese numero es igual leido por la derecha o por la izquierda: es decir si tengo 2112, se lee igual por los dos lados. Como puedo hacerlo?, hasta ahora solo he visto if, for, while,switch, y nada mas..., por eso también es que no se como hacerlo. el método que nos enseño para hacerlo es el siguiente: EJM:2142 divido 2142 para 1000 y obtengo el numero 2 en la variable A luego a la variable A le multiplico por 1000 y el numero original lo resto de la variable que obtuve ahora (2000), este numero que obtengo lo divido para 100 y recién obtengo el sig. numero en la variable b. Y asi sucesivamente.Para luego comparar
El problema vino que no se cuantas variables utilizar pues puede ser un numero de 10 dígitos, es decir 10 variables...., como hago para irlas creando de acuerdo a mi necesidad. Intente hacer esto for(i=1;i<=10;i++) { int A A=A+1; } sirve lo que hize?. Bueno igual quisiera saber otra forma más simple sin tanto rollo, ya que hubo alguien por ahí que hizo lineas y lineas y lineas. Muchas Gracias. Saludos
Título: Re: Problema Con Un Ejercicio
Publicado por: elpollo12 en Martes 24 de Julio de 2007, 14:56
bueno mira yo creo q se hace mas facil si tienes un numero de 10 digitos hacerlo con un vector, el cual puedes ir rellenando con ciclos for. por ejem:
int num[9],i; for(i=0;i<10;i++) { cout<<"Ingrese el "<<i+1<<" digito: "; cin>>num; }
los digitos se guerdarian en num[0], num[1], num[2] ..... y luego con un poco de lógica y utilizando algunos if y else lo podrias hacer.
Título: Re: Problema Con Un Ejercicio
Publicado por: elpollo12 en Martes 24 de Julio de 2007, 15:22
7896336987 es un numero de 10 digitos q es igual leido por la derecha o por la izquierda, entonces la comparacion seria:
if(num[0]==num[9] && num[1]==num[8] && num[2]==num[7] ......) y así continuas.........
Título: Re: Problema Con Un Ejercicio
Publicado por: RadicalEd en Martes 24 de Julio de 2007, 15:35
Checa esto. Números capicuas, cualquier duda se te aclara.
Código: Text
Numero_Aux<-Numero
Numero_Invertido<- Numero_Aux Mod 10
Mientras Numero_Aux>9 hacer
Numero_Aux<-Numero_Aux div 10
Numero_Invertido<-Numero_Invertido* 10 + Numero_Aux Mod 10
Fin Mientras
[/color]
Título: Re: Problema Con Un Ejercicio
Publicado por: Mollense en Martes 24 de Julio de 2007, 18:43
una mas...
Código: Text
convertir el número a cadena
copiar a una nueva cadena
invertir la nueva cadena
comparar las dos cadenas, si son iguales el número es capicúa, de lo contrario, no.
Título: Re: Problema Con Un Ejercicio
Publicado por: RadicalEd en Martes 24 de Julio de 2007, 19:06
Cita de: "Angel_K_ido"
una mas...
jejeje
Título: Re: Problema Con Un Ejercicio
Publicado por: Mollense en Martes 24 de Julio de 2007, 19:12
Cierto, cierto, es que lo tenía hecho, lo modifico...
... ahora borra la cita y listo.
Título: Re: Problema Con Un Ejercicio
Publicado por: pablo_ivan57 en Miércoles 25 de Julio de 2007, 05:39
Ok muchas gracias por las respuestas, pero tengo una duda, si la convierto a cadena, e ingresaron 002112, 002112 no va a ser igual a 211200, como hago en ese caso... y por cierto como cambia de int a string en C++. Gracias. Saludos.