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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [C]Factorial de un numero
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C]Factorial de un numero  (Leído 5,434 veces)
HRSLASH

Desconectado Desconectado

Mensajes: 33



Ver Perfil
[C]Factorial de un numero
« en: 9 Agosto 2010, 17:11 pm »

Hola foreros!! :D aca dejo un programita que calcula el factorial de un numero. El problema que tiene es que cuando se ingresa un numero mayor a 12 da un resultado erroneo, declare la variable factorial con todos los tipos pero en ningun caso funciono.. como se podria solucionar??

Código
  1. #include<stdio.h>
  2.  
  3. main()
  4. {
  5.      int i, num;
  6.      double factorial = 1;
  7.  
  8.      printf("FACTORIAL DE UN NUMERO\n\n");
  9.      printf("Ingrese un numero: ");
  10.      scanf("%d", &num);
  11.  
  12.      for (i = 1; i <= num; i++)
  13.          factorial *= i;
  14.  
  15.      printf("\n%d! = %.0f\n", num, factorial);
  16.  
  17.      return 0;
  18. }
  19.  

P.D: Acabo de modificar el codigo, ahora si factorea cualquier nº. Grax rob1104!


« Última modificación: 9 Agosto 2010, 18:55 pm por HRSLASH » En línea

La televisión es para mi el medio mas instructivo y cultural que conozco, cuando la prenden me voy a leer
rob1104


Desconectado Desconectado

Mensajes: 340


Usuario común


Ver Perfil WWW
Re: [C]Factorial de un numero
« Respuesta #1 en: 9 Agosto 2010, 17:28 pm »

Hola, probaste con unsigned long long?? Acepta el rango: 0 a 18,446,744,073,709,551,615.
Para imprimirlo con printf el modificador es %lld
Código
  1. #include<stdio.h>
  2.  
  3. int main()
  4. {
  5.      int i, num;
  6.      unsigned long long factorial = 1;
  7.  
  8.      printf("FACTORIAL DE UN NUMERO\n\n");
  9.      printf("Ingrese un numero: ");
  10.      scanf("%d", &num);
  11.  
  12.      for (i = 1; i <= num; i++)
  13.          factorial *= i;
  14.  
  15.      printf("\n%d! = %lld\n", num, factorial);
  16.  
  17.      return 0;
  18. }
  19.  

Saludos


En línea

Sin análisis de requisitos o sin diseño, programar es el arte de crear errores en un documento de texto vacío.
HRSLASH

Desconectado Desconectado

Mensajes: 33



Ver Perfil
Re: [C]Factorial de un numero
« Respuesta #2 en: 9 Agosto 2010, 17:34 pm »

Hola rob! gracias x tu ayuda! lo acabo de probar asi pero tampoco da el rtdo correcto..  :-\ t hago una preg, pq lo declaras unsigned?
En línea

La televisión es para mi el medio mas instructivo y cultural que conozco, cuando la prenden me voy a leer
rob1104


Desconectado Desconectado

Mensajes: 340


Usuario común


Ver Perfil WWW
Re: [C]Factorial de un numero
« Respuesta #3 en: 9 Agosto 2010, 17:45 pm »

Era solo para mas rango positivo pero veo que no es suficiente.

Intenta declarando la variable factorial tipo double, y en el printf prueba con el modificador %.0f, si no quieres ver tantos 0s puedes usar el %e para notacion cientifica.

Saludos
En línea

Sin análisis de requisitos o sin diseño, programar es el arte de crear errores en un documento de texto vacío.
HRSLASH

Desconectado Desconectado

Mensajes: 33



Ver Perfil
Re: [C]Factorial de un numero
« Respuesta #4 en: 9 Agosto 2010, 18:38 pm »

Lo modifique a double y efectivamente funciono!  :D ahora si el programa factoriza cualquier numero.. Muchas gracias x la ayuda!!  :D

Saludos!!
En línea

La televisión es para mi el medio mas instructivo y cultural que conozco, cuando la prenden me voy a leer
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: [C]Factorial de un numero
« Respuesta #5 en: 9 Agosto 2010, 23:04 pm »

Para imprimirlo con printf el modificador es %lld


Sería %llu, no %lld.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Descomposición factorial en 64 bits
Programación C/C++
miguelelmejor 3 4,845 Último mensaje 26 Diciembre 2012, 03:45 am
por Heisenbergs
Factorial de un numero!
Programación C/C++
barnix456 3 3,106 Último mensaje 12 Mayo 2012, 17:00 pm
por barnix456
Error al hacer la factorial de un numero en C
Programación C/C++
diegofah 2 2,585 Último mensaje 6 Septiembre 2013, 16:49 pm
por ecfisa
Problemas con programa k calcula factorial del numero
PHP
elbrujo20 1 2,209 Último mensaje 29 Septiembre 2017, 22:39 pm
por ivancea96
Factorial de un Número : duda
Programación C/C++
snoopty 5 3,214 Último mensaje 16 Enero 2022, 13:32 pm
por K-YreX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines