大数阶乘 纯手动模拟乘法;
题目链接 http://acm.nyist.net/JudgeOnline/problem.php?pid=28
#include<stdio.h>
#include<string.h>
const int maxn=20000;
int a[maxn];
int main()
{
int n,i,j,s,c;
scanf("%d",&n);
memset(a,0,sizeof(a));
a[0]=1;
for(i=2;i<=n;i++)
{c=0;
for(j=0;j<=maxn;j++)
{
s=a[j]*i+c;
a[j]=s%10;
c=s/10;
}//此处进行的是模拟乘法。
}
for(j=maxn;j>=0;j--) if(a[j]) break;//此处就行去除前导零
for(i=j;i>=0;i--) printf("%d",a[i]);
printf("\n");
}