题目:输入不超过1000的正整数n,输出n!=1x2x3···xn的精确结果。
样例输入:30
样例输出:265252859812191058636308480000000
分析:先存个 大的数组求a[3000],让a[0]保存结果的个位(方便进位)
白皮书代码(看啦好几遍才看懂QAQ)
#include<stdio.h>
#include<string.h>
#define N 3000
int a[N];
int main()
{
int i,j,n;
while(~scanf("%d",&n)){
memset(a,0,sizeof(a));
a[0]=1;
for(i=2;i<=n;i++){//乘以i
int c=0;
for(j=0;j<N;j++){
int s=a[j]*i+c;
a[j]=s%10;
c=s/10;
}
}
for(j=N-1;j>=0;j--)
if(a[j])
break;
for(i=j;i>=0;i--)
printf("%d",a[i]);
printf("\n");
}
return 0;
}