题目大意:
在这个问题中,你会被给予一个数,你需要决定它的阶乘中的数字的个数。
输入:包括几行,每行有一个整数。第一行为一个整数n,n为测试的次数。之后的每行为一个m,其范围为1 <= m <= 10^7。
解题思路:
计算位数。
程序代码:
#include<stdio.h>
#include<math.h>
const long double e=2.7182818284590452354, pi=3.141592653589793239;
double f(int a)
{
return 0.5 * log10( 2 * pi * a ) + a * ( log10( (long double)a ) - log10( e ) );
//公式s
}
int main()
{
int n,m;
double s;
scanf("%d",&n);
while(n--)
{
scanf("%d",&m);
s=f(m);
printf("%d/n",(int)(s-(1e-7))+1);
}
return 0;
}