Big Number

Posted JZYshuraK_彧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Big Number相关的知识,希望对你有一定的参考价值。

Big Number poj-1423

    题目大意:给出一个自然数n,求n!的位数。

    注释:n<=$10^7$。

      想法:我们显然知道了,直接暴力显然会T掉,而且需要高精度的存在。所以,在此,我们介绍一种公式——Stirling公式。

      Stirling公式:$n!\approx\sqrt{2\pi n}(\frac{n}{e})^n$。

      令
技术分享图片
      则
技术分享图片
      技术分享图片
      技术分享图片
      所以
技术分享图片
技术分享图片
,即单调递减,又由积分放缩法有
技术分享图片
      即
技术分享图片
,即
技术分享图片
      由单调有界定理
技术分享图片
的极限存在[1]  ,
      设
技术分享图片
      技术分享图片
      利用Wallis公式
技术分享图片
      技术分享图片
      所以
技术分享图片
      技术分享图片
      即
技术分享图片     粘自度娘
    最后,附上丑陋的代码... ...
 
 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cmath>
 4 using namespace std;
 5 const double e=2.7182818284590452354;
 6 const double pi=3.141592653589793239;
 7 inline double strling(int n)
 8 {
 9     return log10(2*pi*n)/2.0+n*(log10(n/e));
10 }
11 int main()
12 {
13     int cases;
14     int n;
15     double m;
16     int answer;
17     scanf("%d",&cases);
18     while(cases--)
19     {
20         scanf("%d",&n);
21         m=0;
22         m=strling(n);
23         answer=(int)m;
24         answer++;
25         printf("%d\n",answer);
26     }
27     return 0;
28 }

    小结:这种结论题就靠题量去强化吧... ...

以上是关于Big Number的主要内容,如果未能解决你的问题,请参考以下文章

Big Number

HDU 1018 Big Number

HDU 1018 Big Number 数学题

Big Number

HDU 1212: Big Number

Big Number