题意:给你一个 n ,计算 n! 有多少位数
分析:
123456=1.23456*10^5;
log10(123456)=5.09151;
log10(1.23456*10^5)=log10(1.23456)+log10(10^5)=0.09151+5;
故int(log10(n))+1 就是n的位数
#include<cstdio>
#include<cmath>
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int n;
scanf("%d",&n);
double sum=0;//这里必须是浮点类型
for(int i=2;i<=n;i++)
sum+=log10(i*1.0);
int ans=int(sum)+1;
printf("%d\n",ans);
}
return 0;
}
后天省赛加油