代码如下:
//求高精度阶乘 n<=100
#include <bits/stdc++.h>
#define MAX 3005
using namespace std;
int n,a[MAX],t;
int main()
{
cin>>n;
a[0]=1;
for(int i=2;i<=n;i++){
for(int j=0;j<MAX;j++){
a[j]*=i;
}
for(int j=0;j<MAX;j++){
t+=a[j];
a[j]=t%10;
t/=10;
}
}
int k;
for(k=MAX-1;k>0&&a[k]==0;k--);//找到末尾第一位非零数
for(int i=k;i>=0;i--) cout<<a[i];
return 0;
}