Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

como puedo declarar un entero gigante???

jesus_hernandez

Bovino Milenario
Desde
27 Ago 2008
Mensajes
1.292
hola, necesito un entero gigante para que le quepa el factorial de 30.

como lo puedo definir??

he intentado:

int *num;
num=(int *)malloc(sizeof(1000*int));

pero, pues como que no resulta.

hice un miniprogramita que pide un numero y luego te lo muestra, para probar si queda o no; pero no queda !!


siempre se queda atorado cuando le meto un numero mayor a: 2147483647


y pues ahi no cabe en factorial de 30.

(
30 ! = 2.6525286 × 10^32

)


se agradece la atencion.


buenos deseos, jesus
 
es parte del tema de "recursividad", asi que tengo que hacer una varias funciones que trabajen de manera recusiva, el factorial se puede calcular con una funcion recursiva, pero mi maestra de preogramacion, nos dijo que el pograma tendria que poder calcular el factorial de un numeo tan grande como el 30.


asi pues, un long int é incluso un 'long long int' no tienen la capacidad suficiente para almacenar algo tan grande.
 
pues resulta ser que usando un unsigned float se resolvio el problema, gracias
 
Quizá te encuentres con un típico problema donde no cabe en ningun tipo de variable... xD

Sobre por qué no te funciona en tu ejemplo, eso es, porque le estás diciendo que quieres separar 1000 * int de memoria, pero como estás usando un puntero a "int", entonces, el puntero va a tomar sólo lo que le corresponde a ese int, y es por eso, que lo que tú estás creando es un array de enteros, no un entero.
 
Volver
Arriba