SoloCodigo

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
  1. Numero_Aux&#60;-Numero
  2.  
  3. Numero_Invertido&#60;- Numero_Aux Mod 10
  4.  
  5. Mientras Numero_Aux&#62;9 hacer
  6.  
  7.   Numero_Aux&#60;-Numero_Aux div 10
  8.  
  9.   Numero_Invertido&#60;-Numero_Invertido* 10 + Numero_Aux Mod 10
  10.  
  11. Fin Mientras
  12.  
[/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
  1.  
  2.     convertir el número a cadena
  3.     copiar a una nueva cadena
  4.     invertir la nueva cadena
  5.     comparar las dos cadenas, si son iguales el número es capicúa, de lo contrario, no.
  6.  
  7.  
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.