N!
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 80556 Accepted Submission(s): 23614
模擬大數乘法運算,直接上模板,這樣比較費時,4位一組4位一組的運算會節省很多時間並且用一個變量來表示大數的長度
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int num[100002],n;
void multiply(int k){
int f = 0;
for(int i = 0;i < 50000;i++){
num[i] = num[i]*k+f;
f = num[i]/10;
num[i]%=10;
}
}
int main()
{
while(~scanf("%d",&n)){
memset(num,0,sizeof(num));
num[0] = 1;
for(int i = 1;i <= n;i++)
multiply(i);
int j;
for(j = 50000;j>=0;j--){
if(num[j]!=0)
break;
}
for(;j>=0;j--)
printf("%d",num[j]);
printf("\n");
}
return 0;
}