51NOD 求n的阶乘的长度(斯特林公式)

    一、任意数的长度公式:给一个数X,len=log10(X)+1就是X这个数的长度

    二、求N!有多少位。因为有斯特林公式,所以求n!的位数即           log10(n)=log10(sqrt(2*acos(-1.0)*n))+n*log10(n/exp(1.0));

 题目地址:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1058

 Code:

#include <iostream>
#include <math.h>
using namespace std;
int main()
{
    long long n;
    cin >> n;
    double res=log10(sqrt(2*acos(-1.0)*n))+n*log10(n/exp(1.0));
    cout <<(int)res+1;
    return 0;
}


你可能感兴趣的:(51NOD 求n的阶乘的长度(斯特林公式))