斯特林公式-求解n!的位数
题目链接
上述为斯特林阶乘快速求解的近似公式,这个误差值随着n的增大而减小
求位数就是log10(x)即可,但是注意到,log10(x)求出的整数部分+1才是x的位数
#include<iostream>
#include<cmath>
using namespace std;
#define pi 3.141592653589793
#define e 2.718281828459
int main(){double n;int t;cin>>t;while(t--){cin>>n;double value = (0.5*log10(2*pi*n)+n*log10(n/e));cout<< (long long)value+1<<endl;}
}
具体公式推导参考百度百科