题目链接:题目
做法:1ms,秒过评测
运用了斯特林公式
/*斯特林公式斯特林公式(Stirling's approximation)是
一条用来取n的阶乘的近似值的数学公式。一般来说,当n很大的时候,
n阶乘的计算量十分大,所以斯特林公式十分好用,而且,
即使在n很小的时候,斯特林公式的取值已经十分准确。
*/
#include<cmath>
#include<cstdio>
using namespace std;
#define pi 3.14159265
#define e 2.71828182
int main()
{
int m;scanf("%d",&m);
while(m--)
{
int n,ans;
scanf("%d",&n);
ans=(int)((0.5*log(2*pi*n)+n*log(n)-n)/log(10));
printf("%d\n",ans+1);
}
return 0;
}
附上百度百科:斯特林公式