#include <stdio.h>
#include <string.h>
long a[1000000],temp,i,num;
int main()
{
int n;
while(~scanf("%d",&n))
{
int digit=1;//每次得数的位数,temp为每次得数
num=0;//
memset(a,0,sizeof(a));
a[0]=1;//从1开始乘
for(i=2;i<=n;i++)
{
for(int j=0;j<digit;j++)
{
temp=a[j]*i+num;//将每个数的每一位数都分别乘以i;
a[j]=temp%10;//将一个数的每一位数利用数组进行储存
num=temp/10;
}
while(num)
{
a[digit]=num%10;//继续储存
num/=10;
digit++;
}
}
for(int j=digit-1;j>=0;j--)//倒序输出
printf("%d",a[j]);
printf("\n");
}
return 0;
}
求大数阶乘
猜你喜欢
转载自blog.csdn.net/Honeycomb_1/article/details/79575719
今日推荐
周排行