题意:n!的结果由多少位组成。
假设10^x近似n!,则x=lg(n!),展开x=lg(n)+lg(n-1)+lg(n-2)+...+lg1。
代码:
#include<stdio.h>
#include<math.h>
double solve(int n)
{
double cnt=0;
for(int i=2;i<=n;i++)
{
cnt+=log10(i);
}
return cnt;
}
int main()
{
int cas,n;
scanf("%d",&cas);
while(cas--)
{
scanf("%d",&n);
printf("%d\n",(int)solve(n)+1);
}
return 0;
}