Autor Tema: calculo de factorial en C con numeros grandes Duda con longitud  (Leído 9046 veces)

rackdon

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 50
    • Ver Perfil
buenos dias.
Tengo un ejercicio que consiste en calcular el factorial de un número. Cuando supero el factorial de 12 los resultados no son los esperados, supongo que sera por la longitud de la constante. ¿Hay alguna forma de solucionar eso?
Gracias

A continuacion pongo el codigo a ver si hay alguna solucion:

Código: [Seleccionar]
// Ejercicio 4.14: Calculo de factorial //

#include <stdio.h>
main()
{
      int numero, control;
      int total = 1;
     
      printf("Por favor introduzca el n%cmero del factorial que desea calcular: ", 163);
      scanf("%d", &numero);
     
      for ( control = numero; control >= 1; control--) {
          total *= control;
          printf("%d\t", total);}
         
      printf("\n\nel resultado del factorial indicado es: %d\n\n", total);
     
system("pause");
return 0;
}



« Última modificación: 28 de Abril 2014, 14:40 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:calculo de factorial en C con numeros grandes Duda con longitud
« Respuesta #1 en: 28 de Abril 2014, 12:56 »
El problema está en que los computadores no pueden trabajar con números infinitamente grandes, tienen un límite. Hay factoriales que no podrás calcular por exceder la capacidad de los computadores. Puedes solucionar parcialmente el problema usando el tipo de dato double en vez del tipo int, ya que double es el que permite un rango numérico más amplio (tiene más capacidad), pero siempre llegará un momento en que excedas la capacidad y ya no sea posible realizar el cálculo. Saludos.

rackdon

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 50
    • Ver Perfil
Re:calculo de factorial en C con numeros grandes Duda con longitud
« Respuesta #2 en: 28 de Abril 2014, 13:07 »
Muchisimas gracias. Ya está todo arreglado

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".