Hola, tengo un programa para hacer en la universidad, lo que me pide es que primero halle el factorial de 100, y luego de eso el resultado sume digito por digito, y que imprima ese resultado.
Hice un programa pero no puedo usarlo bien porque al usar modulo (%) no me lo permite porque hay variables declaradas como double,no se como puedo hacerlo necesito un poco de ayuda
Aqui el programa
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
main()
{
int i,num,a,suma,b=0;
double n=1,modulo,factorial;
printf("Intrododuce el número del cual calcular su factorial \n");
scanf("%d",&num);
for(i=1;i<num+1;i++){
n=n*i;
printf("%i", n);
}
for(a=0;a<=200;a++)
{
b=n%10;
suma=suma+b;
factorial=factorial/10;
}
printf("%i", suma);
return 0;
}
De verdad me ayudaría mucho algún retoque al mio o uno diferente, pero en este momento estoy estancado, gracias.
Ahora no tengo tiempo de probar nada.
Para conseguir el módulo de doubles usa fmod.
Lo he probado y deberás buscar otra solución para conseguir el factorial de 100.
tu programa dice
100! = 93326215443944102188325606108575267240944254854960571509166910400407995064242937148632694030450512898042989296944474898258737204311236641477561877016501813248
python3 dice
100! = 933262154439441526816992388562667004907159682643816214685929638952175999932299156089414639761565182862536979208272237582511852109168640000000000000000000000
Al parecer nadie se dio cuenta de lo obvio, el factorial de 100 contiene 158 dígitos decimales; es imposible que un duoble pueda almacenar este numero ni con otro tipo nativo de C, debes usar librerías como GMP o la fórmula de Stirling.
;-)
Iba a hacer un dato personalizado, pero este fin de semana lo tengo algo ocupado :rolleyes:
Así que solo contestaré cosas sencillas :silbar: