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

    题目来源:HDOJ1018(求阶乘的位数)

    斯特林公式简介(维基百科):

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

    公式为:

    n! \approx \sqrt{2\pi n}\, \left(\frac{n}{e}\right)^{n}.

    这就是说,对于足够大的整数n,这两个数互为近似值。

    n增加时,(ln n!)与o (n ln nn)之比趋于1。

    几乎超时:

     1 # include <stdio.h>
    2 # include <math.h>
    3
    4 int main()
    5 {
    6 int T, x, i;
    7 double sum;
    8
    9 scanf("%d", &T);
    10 while (T--)
    11 {
    12 scanf("%d", &x);
    13 for (sum=0, i=1; i <= x; ++i)
    14 sum += log10(i);
    15 printf("%d\n", (int)sum+1);
    16 }
    17
    18 return 0;
    19 }

    0ms:

     1 # include <stdio.h>
    2 # include <math.h>
    3
    4 int main()
    5 {
    6 int T, n;
    7
    8 scanf("%d", &T);
    9 while (T--)
    10 {
    11 scanf("%d", &n);
    12 printf("%d\n",(int)(n*log10(n/exp(1.0))+0.5*log10(2.0*n*4.0*atan(1.0)))+1);
    13 }
    14
    15 return 0;
    16 }




  • 相关阅读:
    JVM系列三:JVM参数设置、分析
    JVM系列二:GC策略&内存申请、对象衰老
    HotSpot VM GC 的种类
    2.静态库和动态库
    1.GCC编译过程
    6.树
    5.队列
    4.栈
    3.线性表
    2.算法
  • 原文地址:https://www.cnblogs.com/JMDWQ/p/2391131.html
Copyright © 2011-2022 走看看