求n的阶乘位数,套用斯特林公式
直接上代码。因为对精确度要求更高,自然对数的底数e要精确到小数点后12位,圆周率精确到小数点后13位
#include <stdio.h>
#include<math.h>
#define e 2.718281828459
#define PI 3.1415926535898
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n;
scanf("%d",&n);
long long int ans;
ans=log10(2.0*PI*n)/2.0+n*log10(n/e)+1;
printf("%lld\n",ans);
}
return 0;
}