斯特林公式

斯特林公式

         斯特林公式(Stirling's approximation)是一条用来取n的阶乘近似值的数学公式。一般来说,当n很大的时候,n阶乘的计算量十分大,所以斯特林公式十分好用,而且,即使在n很小的时候,斯特林公式的取值已经十分准确。
     
 
   
求解n!的位数,n很大时候适用; ans=log10(n!)=log10(sqrt(2*PI*n)*(n/e)n);
代码:
   
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 double PI=acos(-1.0);
 4 int main()
 5 {
 6     long long  n,i,j,t;
 7     double r=0;
 8         scanf("%lld",&n);
 9         if(n<=3){puts("1");}
10         cout<<(long long)(floor(log10(sqrt(2*PI*n))+n*log10(n)-n*log10(exp(1)))+1)<<endl;
11     return 0;
12 }

 

posted @ 2017-08-29 16:24  *zzq  阅读(254)  评论(0编辑  收藏  举报