Я делаю домашнее задание и мне нужно сделать программу. Мне нужно сделать факториал n> 12, и я делаю все, но у меня нет решения.
Моя проблема возникает из-за того, что я использую unsigned long long и у него всего 32 байта. но 13! иметь больше номера, чем это.
Мне нужно использовать long double, но я не знаю, как его использовать.
#include <stdio.h>
#include <stdlib.h>
unsigned long long factorial(int x)
(13!>2^32-1)--> max 32 bytes
{int i=1;
int aux=1;
int p;
p= x+1;
while (i<p)
{
aux*=i;
i++;
}
x=aux;
};
int main()
{
float v1=0;
int e1=0;
while(e1<1 || e1>12)
{printf("Ingrese un valor: ");
scanf("%f",&v1);
e1=v1/1;/
if(e1!=v1)
printf("Solo se considera el numero entero: %d \n",e1);
if(e1>12)
printf("Este programa solo calcula hasta 12! (12 factorial) \n\n");}
printf("El factorial de %d es: %d \n",e1,factorial(e1));
printf("%d! = %d \n",e1,factorial(e1));
return 0;
}