码迷,mamicode.com
首页 > 其他好文 > 详细

Big Number

时间:2018-02-12 21:40:44      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:c51   src   scanf   microsoft   代码   layout   dsa   lan   baidu   

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

标签:c51   src   scanf   microsoft   代码   layout   dsa   lan   baidu   

原文地址:https://www.cnblogs.com/ShuraK/p/8445545.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!