您的位置:首页 > 其它

HDU 1042 N!(大数阶乘)

2016-03-02 20:59 453 查看
本题看着为大数的模板题目,挺简单的。

下面是模仿某位大神的代码

#include<stdio.h>
void main()
{
int i,j,m,n;
while(scanf("%d",&n)!=EOF)
{
if(n<0)
continue;
int a[10000]={0};
m=0;
a[0]=1;
for(i=1;i<=n;i++)
for(j=0;j<=m;j++)
{
a[j]=a[j]*i;
if(j>0&&a[j-1]>=10000)
{
a[j]=a[j]+a[j-1]/10000;
a[j-1]=a[j-1]%10000;
}
if(a[m]>=10000)
m++;
}
printf("%d",a[m]);
for(i=m-1;i>=0;i--)
printf("%04d",a[i]);
printf("\n");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: