原题链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=28
描述:
我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?
代码:
ACCEPTED
#include <stdio.h>
int main(){
int i,n,a[50000],k,v=0,j,m=0;
//memset(a,0,sizeof(a));
scanf("%d",&n);
a[0]=1;
for(i=2;i<=n;i++){
for(v=0,j=0;j<=m;j++){//用数组中存储的数与i相乘
k=a[j];
a[j]=(k*i+v)%10;
v=(k*i+v)/10;
}
while(v){
a[++m]=v%10;
v/=10;
}
}
// printf("%d",j);
while(m>=0)
printf("%d",a[m--]);
printf("\n");
return 0;
}