N! http://acm.hdu.edu.cn/showproblem.php?pid=1042
2013-08-06 10:32
531 查看
N!
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 43866 Accepted Submission(s): 12335
[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
[align=left]Author[/align]
JGShining(极光炫影)
#include <stdio.h> #include<string.h> #define M 40000 int main() { int i,n,j; int a[M+10]; while(scanf("%d",&n)!=EOF) { memset(a,0,sizeof(a)); a[0]=1; for(i=1;i<=n;i++) { for(j=0;j<M;j++) { a[j]=a[j]*i; } for(j=0;j<M;j++) { if(a[j]>=10) { a[j+1]+=a[j]/10; a[j]%=10; } } } for(i=M;(a[i]==0)&&(i>=0);i--); if(i>=0) for(;i>=0;i--) printf("%d",a[i]); else printf("0"); printf("\n"); } return 0; }
做这道题,需要用大数相乘的知识,当时比赛,我没用心想大数相乘以至于当时没做出来。今天用了几分钟就搞定了。其实它的原理很简单就是把大数存放在数组中,然后对每一位乘i,乘完之后再考虑进位,然后去0,倒叙输出,有个地方要注意,就是n的范围,可不敢在while里边写n<=10000作为循环条件,因为那样会超时。
相关文章推荐
- 最小路径覆盖&&http://acm.hdu.edu.cn/showproblem.php?pid=4160
- 寒冰王座(http://acm.hdu.edu.cn/showproblem.php?pid=1248)
- http://acm.hdu.edu.cn/webcontest/contest_showproblem.php?pid=1004&ojid=1&cid=6866&hide=1&problem=Pro
- http://acm.hdu.edu.cn/showproblem.php?pid=1568
- Text Reverse&&http://acm.hdu.edu.cn/showproblem.php?pid=1062
- http://acm.hdu.edu.cn/showproblem.php?pid=1527..
- http://acm.hdu.edu.cn/showproblem.php?pid=1385
- hdu 2099 整数的尾数 http://acm.hdu.edu.cn/showproblem.php?pid=2099
- hdu1171 http://acm.hdu.edu.cn/showproblem.php?pid=1171
- 一个人的旅行(http://acm.hdu.edu.cn/showproblem.php?pid=2066)SPFA||dijkstra
- http://acm.hdu.edu.cn/showproblem.php?pid=1719
- http://acm.hdu.edu.cn/showproblem.php?pid=1394
- 换角度思考:http://acm.hdu.edu.cn/showproblem.php?pid=3602
- 导弹拦截二&&http://acm.hdu.edu.cn/showproblem.php?pid=1257
- I NEED A OFFER! &&http://acm.hdu.edu.cn/showproblem.php?pid=1203
- http://acm.hdu.edu.cn/showproblem.php?pid=2571
- hdu 2099 整数的尾数 http://acm.hdu.edu.cn/showproblem.php?pid=2099
- http://acm.hdu.edu.cn/showproblem.php?pid=1907,与杭电2509题类似。
- Choose the best route(http://acm.hdu.edu.cn/showproblem.php?pid=2680)
- http://acm.hdu.edu.cn/showproblem.php?pid=2841 题意很简单