题目
输入N求N的阶乘的10进制表示的长度。例如6! = 720,长度为3。
Input
第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 1000)
第2 - T + 1行:每行1个数N。(1 <= N <= 10^9)
Output
共T行,输出对应的阶乘的长度。
Sample Input
3
4
5
6
Sample Output
2
3
3
阶乘用公式:
https://wikimedia.org/api/rest_v1/media/math/render/svg/7489e59bc66adbb000553820b299039016cc02d5
#include<cstdio>
#include<cmath>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<stack>
using namespace std;
#define ll long long
#define pi acos(-1)
int main()
{
int T, n;
scanf("%d", &T);
while( T--){
scanf("%d", &n);
printf("%lld\n", (ll)((log10(2*pi*n)/2+n*log10(n/exp(1.0)))+1));
}
return 0;
}