分析
开一个1000位的数组a,之后对每次阶乘进行计算。
C++ 代码
#include<bits/stdc++.h>
using namespace std;
const int N = 1e3+10;
int a[N],n;
void mul(int a[],int x)
{
int temp=0;
for(int i=0;i<N;i++) //从个位(第0位)开始乘
{
temp+=a[i]*x;
a[i]=temp%10;
temp/=10;
}
}
int main()
{
a[0]=1;
cin>>n;
for(int i=1;i<=n;i++) mul(a,i); //进行阶乘
for(int i=0;i<N;i++){
if(a[i]){
cout<<a[i];
return 0;
}
}
return 0;
}