elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el ttwitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con números largos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con números largos  (Leído 2,785 veces)
DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Problema con números largos
« en: 4 Julio 2012, 19:10 pm »

Hola.

Estoy haciendo problemas en los que algunas variables guardan números muy grandes. Por ejemplo, quiero calcular la suma de los dígitos del resultado de hacer 2 ^1000

La función de sumar los dígitos he comprobado que está bien, y la función pow() sé usarla, por lo que he supuesto a que el resultado es incorrecto debido a que trabajo con números muy grandes:

Código
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. int suma(long long int n)
  5. {
  6.    if(n >= 0 && n < 10) return n;
  7.    else return n%10 + suma(n/10);
  8. }
  9.  
  10. int main()
  11. {
  12.    long long int num;
  13.    int resultado;
  14.  
  15.    num = pow(2, 1000);
  16.  
  17.    resultado = suma(num);
  18.    printf("Resultado: %d", resultado);
  19.    return 0;
  20. }
  21.  
  22.  

¿Qué puedo hacer? He visto que a veces recomiendan usar librerías externas, pero prefiero que me lo confirme alguien...

Saludos y muchas gracias.


En línea

SXF

Desconectado Desconectado

Mensajes: 189



Ver Perfil WWW
Re: Problema con números largos
« Respuesta #1 en: 4 Julio 2012, 19:56 pm »

Si me parace que la unica forma es utilizar una libreria extena como CLN.
Mira este enlace:
http://clan-destino42.blogspot.com.es/2011/01/numeros-grandes-en-c.html

Si te fijas en la documentacion te indica que  usando esta función:

cl_RA expt (const cl_RA& x, const cl_I& y)
cl_R expt (const cl_R& x, const cl_I& y)
cl_N expt (const cl_N& x, const cl_I& y)
Returns x^y.

puedes intentar obtener lo que quieres.
Puedes verlo aquí: http://www.ginac.de/CLN/cln_4.html#SEC22


« Última modificación: 4 Julio 2012, 20:09 pm por SXF » En línea

DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: Problema con números largos
« Respuesta #2 en: 4 Julio 2012, 20:03 pm »

Muchas gracias.

Esa librería utiliza clase, según el link que me has pasado, por lo creo que es de C++... ¿O se puede usar bien en C?

Saludos.
En línea

SXF

Desconectado Desconectado

Mensajes: 189



Ver Perfil WWW
Re: Problema con números largos
« Respuesta #3 en: 4 Julio 2012, 20:14 pm »

Si me parece que es pa c++ ya que usa clases. Y los prerequisitos parece indicar eso:
http://www.ginac.de/CLN/cln_2.html#SEC3
Aunque he encontrado otra que si creo que trabaja en c y c++.
http://gmplib.org
« Última modificación: 4 Julio 2012, 20:19 pm por SXF » En línea

DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: Problema con números largos
« Respuesta #4 en: 4 Julio 2012, 21:56 pm »

Muchas gracias, creo que esa va a ser la librería que me va a servir.

En el PDF que viene ahí, pone cómo instalar la librería en UNIX... Pero, ¿cómo se instala en Windows 7 en CodeBlocks? Solo he instalado por ahora la librería Allegro, y no sé muy bien todavía cómo hacerlo...

Saludos.
En línea

avesudra


Desconectado Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: Problema con números largos
« Respuesta #5 en: 5 Julio 2012, 02:59 am »

Toma aquí viene , en ingles pero bueno... http://www.cs.nyu.edu/exact/core/gmp/

« Última modificación: 5 Julio 2012, 03:13 am por avesudra » En línea

Regístrate en
DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: Problema con números largos
« Respuesta #6 en: 5 Julio 2012, 12:28 pm »

Muchas gracias, avesudra.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como editar audios largos
Multimedia
Fierce 1 943 Último mensaje 27 Febrero 2006, 14:59 pm
por Songoku
[Problema] Programa para averiguar números pares entre 2 números
Programación Visual Basic
Dreamaker 3 4,787 Último mensaje 21 Mayo 2010, 23:45 pm
por Shell Root
Apagados excesivamente largos « 1 2 »
Windows
Gambinoh 10 3,868 Último mensaje 30 Agosto 2011, 08:08 am
por Randomize
problema l requerir números « 1 2 »
Programación C/C++
7hongo7 13 4,034 Último mensaje 20 Febrero 2013, 18:49 pm
por 7hongo7
Lidiar con archivos largos en C++ « 1 2 »
Programación C/C++
Desiresportal 13 2,057 Último mensaje 5 Noviembre 2018, 22:11 pm
por AlbertoBSD
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines