SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: alberto07 en Domingo 27 de Septiembre de 2009, 06:38

Título: Programa numero palindrome
Publicado por: alberto07 en Domingo 27 de Septiembre de 2009, 06:38
Hola a Todos!

He hecho un programa el cual me obtiene el palindrome de un numero, sumandolo y sumarle el inverso hasta que se obtiene un palindrome.

El caso es que cuanto digito un numero el cual requier mas de 15 o 16 iteraciones por ej. 89 que requiere 24  la pantalla se me queda en 000000 y asi, que tengo que cerrar el programa. Podrian decirme la cusa de esto?

Gracias de antemano.
Título: Re: Programa numero palindrome
Publicado por: Eternal Idol en Domingo 27 de Septiembre de 2009, 10:38
Por supuesto, el codigo esta mal.
Título: Re: Programa numero palindrome
Publicado por: alberto07 en Domingo 27 de Septiembre de 2009, 18:15
Pero si me funciona para muchos otros numeros, hasta 15 o 16 iteraciones. Que puede tener de malo el codigo.

Invertir es la funcion que invierte el numero.
Título: Re: Programa numero palindrome
Publicado por: Eternal Idol en Domingo 27 de Septiembre de 2009, 20:24
No esta el codigo completo y no se que hace exactamente invertir pero tene en cuenta que num tiene un limite.
Título: Re: Programa numero palindrome
Publicado por: alberto07 en Lunes 28 de Septiembre de 2009, 03:53
Esta es la funcion invetrir

Código: C
  1. //funcion que invierte un numero
  2. int invertir(int n)
  3. {
  4.   long d, i=0;
  5.   while(n>0)
  6.   {
  7.     d=n%10;
  8.     i=i*10+d;
  9.     n/=10;
  10.   }
  11.    return i;
  12. }
  13.  
A cual limite te refieres?
Título: Re: Programa numero palindrome
Publicado por: m0skit0 en Lunes 28 de Septiembre de 2009, 11:23
¿Seguro que no es un desbordamiento de long? A lo mejor debes usar unsigned long long.
Título: Re: Programa numero palindrome
Publicado por: Eternal Idol en Lunes 28 de Septiembre de 2009, 12:15
Las variables tienen un rango, averigua cual es el limite de long.
Título: Re: Programa numero palindrome
Publicado por: alberto07 en Lunes 28 de Septiembre de 2009, 16:56
OK, no me habia dado cuenta, entonces habra alguna forma de extender el rango de  una variable?
Título: Re: Programa numero palindrome
Publicado por: m0skit0 en Lunes 28 de Septiembre de 2009, 16:59
Cita de: "alberto07"
entonces habra alguna forma de extender el rango de una variable?
Cita de: "m0skit0"
A lo mejor debes usar unsigned long long.
:huh:
Título: Re: Programa numero palindrome
Publicado por: alberto07 en Lunes 28 de Septiembre de 2009, 18:28
Me Sigue dando el mismo error, a parte es en C y creo que usigned long long es para C++, si no me quivoco.
Título: Re: Programa numero palindrome
Publicado por: m0skit0 en Martes 29 de Septiembre de 2009, 09:59
Cita de: "alberto07"
creo que usigned long long es para C++
También para C. C++ lo que añade son las clases y todo el paradigma de orientación a objetos.

Ponte algo compilable que dé ese mismo error y ya lo depuramos.