zoukankan      html  css  js  c++  java
  • 51nod 1130 斯特林公式

        斯特林公式(Stirling's approximation)是一条用来取n的阶乘的近似值的数学公式。一般来说,当n很大的时候,n阶乘的计算量十分大,所以斯特林公式十分好用,而且,即使在n很小的时候,斯特林公式的取值已经十分准确。

    所以(long)(log10(sqrt(2.0*acos(-1.0)*n))+n*(log10(n)-log10(exp(1.0)))+1)就可以求出n!的长度了。当然n=1是需要特判下。

     1 #include <iostream>
     2 #include <stdio.h>
     3 #include <math.h>
     4 #define ll long long
     5 using namespace std;
     6 
     7 int main(){
     8     int n,t;
     9     scanf("%d",&t);
    10     while(t--){
    11         scanf("%d",&n);
    12         ll x = (ll)(log10(sqrt(2.0*acos(-1.0)*n))+n*(log10(n)-log10(exp(1.0)))+1);
    13         if(n==1)x++;
    14         cout << x << endl;
    15     }
    16     return 0;
    17 }
  • 相关阅读:
    CentOS安装KDE
    __builtin_expect — 分支预测优化
    Linux中CPU亲和性(affinity)
    字节序
    gethostbyname
    字符串搜索算法
    排序算法
    Linux下使用http协议下载文件
    POSIX Timer
    POSIX-Data Structure
  • 原文地址:https://www.cnblogs.com/xingkongyihao/p/7200688.html
Copyright © 2011-2022 走看看