求n!的十进制形式有多少位?
实际上可以转换成求log10(n!) + 1;
n!的求法用斯特林近似公式
百度百科:http://baike.baidu.com/link?url=rSye7gOHpT3O_PPrTBtxlRsImQjgkI1e0sydj5YeIA6c6m9mBt4Df5bm68RauSr_p77k40JHBH4AucLTcLnzyq
代码如下:
#include<iostream>
#include<cmath>
const double PI = 3.141592654;
const double E = 2.718281828459;
using namespace std;
int main()
{
long long n, t, res;
cin >> t;
while (t--)
{
cin >> n;
res =(log10(2 * PI *n)) / 2 + n * log10(n / E) + 1;
cout << res << endl;
}
return 0;
}