您的位置:首页 > 其它

HDU 1042 N!

2016-04-29 01:26 246 查看
算阶乘,最蠢的就是竟然有把10000组全部存下来的想法...

#include <iostream>
#include <cstring>
using namespace std;
int ans[10000],tmp,n,len;
int main()
{
while(~scanf("%d",&n))
{
memset(ans,0,sizeof(ans));
len=ans[1]=1;
for(int i=1;i<=n;i++)
{
tmp=0;
for(int j=1;j<=len;j++)
{
ans[j]=ans[j]*i+tmp;
tmp=ans[j]/10000;
ans[j]%=10000;
}
while(tmp)
{
ans[++len]=tmp%10000;
tmp/=10000;
}
}
printf("%d",ans[len]);
for(int i=len-1;i>0;i--) printf("%04d",ans[i]);
puts("");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: