题目描述:
题目是求n!的位数,当n'普通的ke'x科学计计算,可以处理不超过10的100次幂的计算器可以计算至69!。
当n特别大时斯特林公式估计:
斯特林公式:n很大时,估计值:
更精确的估计值: 其中:
可用出计算出近似值,然后以10为底取对数再加1就是位数。
AC通过的代码:
//万能头
#include<bits/stdc++.h>
using namespace std;
#define LL long long
const double PI = atan(1.)*4.;
int main()
{
int T;
cin>>T;
while(T--){
int a;
cin>>a;
cout<<(int)(log10(2*PI*a)/2+a*(log10(a)-1/log(10)))+1<<endl;
}
return 0;
}