您的位置:首页 > 其它

HDOJ 1042 N! (大数阶乘)

2015-10-16 13:24 387 查看

N!

Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)

Total Submission(s): 67354 Accepted Submission(s): 19307

[align=left]Problem Description[/align]
Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N!

[align=left]Input[/align]
One N in one line, process to the end of file.

[align=left]Output[/align]
For each N, output N! in one line.

[align=left]Sample Input[/align]

1
2
3


[align=left]Sample Output[/align]

1
2
6


题目链接:HDOJ 1042 N! (大数阶乘)

大数阶乘 模板 数组模拟

已AC代码:

#include<cstdio>
#include<cstring>
#define M 36000  //适当足够大
int s[M];
int main()
{
int n,i,j;
while(scanf("%d",&n)!=EOF)
{
memset(s,0,sizeof(s)); //模拟大数阶乘  (模板)
s[0]=1;
for(i=2;i<=n;++i)
{
int m=0;
for(j=0;j<M;++j)
{
int x=s[j]*i+m;
s[j]=x%10;
m=x/10;
}
}
for(i=M-1;i>=0;--i)
if(s[i]!=0)
break;
for(;i>=0;--i)
printf("%d",s[i]);
printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: