一、在十进制下的大数阶乘位数
for (int i = 1; i <= n; i++)
res += log10(i);
二、斯特林公式
注意:该公式需要特判n==1时的情况!!!
#define PI acos(-1.0)
res = (int)(log(2 * PI*n) / 2 + n*log(n) - n) + 1;
当需要得到在其他进制下的位数时(八进制):
#define PI acos(-1.0)
res = (int)((log(2 * pi*n) / 2 + n*log(n) - n) / log(8)) + 1;