#include<stdio.h>
int len=1;
int main()
{
void change(int a[]);
void put(int a[]);
int a[50000]={0};
int n,i,j,f=0;
scanf("%d",&n);
a[0]=1;
for (i = 1; i <=n; i++)
{
for (j = 0; j < len; j++)
{
a[j]=a[j]*i;
}
while (a[len-1]>10)
{
change(a);
}
}
put(a);
getchar();
getchar();
}
void change(int a[])
{
int k=0;
for (k = 0; k <len; k++)
{
if(a[k]<9)
continue;
a[k+1]=a[k+1]+(a[k]/10);
a[k]=a[k]%10;
if (k+1==len)
{
len++;
break;
}
}
}
void put(int a[])
{
for (int i = len-1; i >= 0; i--)
{
printf("%d",a[i]);
}
putchar(10);
}
5000的阶乘【c语言】
最新推荐文章于 2021-11-22 22:36:27 发布