Big Number
2015-08-06 09:35
513 查看
Big Number
[align=center]Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 30956 Accepted Submission(s): 14351
[/align]
[align=left]Problem Description[/align]
In many applications very large integers numbers are required. Some of these applications are using keys for secure transmission of data, encryption, etc. In this problem you are given a number, you have
to determine the number of digits in the factorial of the number.
[align=left]Input[/align]
Input consists of several lines of integer numbers. The first line contains an integer n, which is the number of cases to be tested, followed by n lines, one integer 1 ≤ n ≤ 107 on each line.
[align=left]Output[/align]
The output contains the number of digits in the factorial of the integers appearing in the input.
[align=left]Sample Input[/align]
2
10
20
[align=left]Sample Output[/align]
7
19
[align=left]Source[/align]
Asia 2002, Dhaka (Bengal)
题意:求n的阶乘的位数
应用知识:斯特林公式:n!=sqrt(2*PI*n)*(n/e)^n;(PI=3.1415.......,e=2.71828....)
n!的位数等于(int)log10(n!)+1;
易错点: 大的数在进行乘法运算时耗时故计算时采用log10n!)=log10(1)+log10(2)+..........lon10(n)
<pre name="code" class="csharp"><pre name="code" class="plain"><span style="font-size:14px;">#include<stdio.h> #include<math.h> //#define PI 3.1416926 //#define e 2.71828 int main(){ int n; scanf("%d",&n); while(n--){ int m,i; double k=0; scanf("%d",&m); //k=m*log10(m/e)+log10(2*PI*m);//大数相乘计算耗时并且存在误差由于PI e所致 //d=(int)k; for(i=1;i<=m;i++) k=k+log10(i);//log10i这样写是错误的 printf("%d\n",(int)k+1); } return 0; }</span>
相关文章推荐
- HDOJ 1009
- HDOJ 1001 递归方法
- HDOJ 1002 C语言版
- HDOJ 1003题解
- hdoj 2036 改革春风吹满地
- hdu 3076 ssworld VS DDD 概率dp
- hdu5007 ACM-ICPC 西安赛区网赛A题 水题
- hdu5011 西安邀请赛E题 Game 博弈论
- hdu5012 ACM-ICPC 西安赛区E题 Dice
- 最小生成树——HDOJ 1233 还是畅通工程 解题报告
- 并查集——HDOJ 1213How Many Tables解题报告
- 最小生成树——HDOJ 2988 Dark roads解题报告
- hdoj1001解题报告
- HDOJ 1010 Tempter of the Bone DFS+剪枝
- HDOJ 1312 Red and Black 基础DFS
- HDOJ 1253 胜利大逃亡 BFS
- HDOJ 1242 Rescue 优先队列+bfs
- HDOJ 1016 Prime Ring Problem DFS
- HDOJ 1015 Safecracker
- HDOJ 1044 Collect More Jewels BFS+DFS