使用递推写法
include[HTML_REMOVED]
using namespace std;
const int N = 1010;
vector[HTML_REMOVED] F[N];
vector[HTML_REMOVED] mul(vector[HTML_REMOVED]& A,int b)//用i的阶乘算i+1的阶乘
{
int t = 0;
vector[HTML_REMOVED] C;
for(int i=0;i<A.size()||t;i++)
{
if(i<A.size()) t+= A[i] * b;
C.push_back(t%10);
t/=10;
}
return C;
}
int main()
{
F[1] = {1};
for(int i=2;i<=1000;i++)
{
F[i] = mul(F[i-1],i);//递推
}
int a;
while(cin>>a)
{
for(int i=F[a].size()-1;i>=0;–i) cout<<F[a][i];
cout<<endl;
}
}