#include<iostream>
using namespace std;
int main(void)
{
int n,i,j,k,carry,answer[50000];
while(cin>>n)
{
memset(answer,0,sizeof(answer));
answer[1]=1;
for(i=2,k=1;i<=n;i++)
{
for(j=1,carry=0;j<=k;j++)
{
answer[j]=answer[j]*i+carry;
carry=answer[j]/10;//注意这一句与下面那一句不能
answer[j]%=10;//颠倒,否则就错的离谱了,logic啊,,严谨一点
}
while(carry)
{
answer[++k]=carry%10;
carry/=10;
}
}
//cout<<k<<endl;
for(i=k;i>=1;i--)
cout<<answer[i];
cout<<endl;
}
return 0;
}
HDU1042(N!)
最新推荐文章于 2021-01-23 16:31:43 发布