秦总

叶粉叶唯叶本命,叶受only

N的阶乘的长度 V2(斯特林近似)

斯特灵公式是一条用来取n阶乘近似值的数学公式。

n!≈2πn−−−√∗(ne)nn!≈2πn∗(ne)n

斯特林公式可以用来估算某数的大小,结合lg可以估算某数的位数,或者可以估算某数的阶乘是另一个数的倍数。

题目描述

输入N求N的阶乘的10进制表示的长度。例如6! = 720,长度为3。

Input

第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 1000) 第2 - T + 1行:每行1个数N。(1 <= N <= 10^9)

Output

共T行,输出对应的阶乘的长度。

Input示例

3

4

5

6

Output示例

3

3

ac代码:

#include <iostream>

#include <cmath>

using namespace std;

#define ll long long

#define pi 3.1415926  

#define e 2.718281828459

int main()

{

int t;

cin>>t;

while(t--){

int n;

cin>>n;

ll sum=0.5*log10(2.0*pi*n)+n*log10(n*1.0/e)+1;

cout<<sum<<endl;

}

return 0;

}



评论