传送门:1058 N的阶乘的长度
解题思路
因为是要求位数,也就是相当于求:10^x = n!。根据数学知识取log10就可以了
AC代码
#include<stdio.h>
#include<math.h>
const int MAXN = 100005;
int main()
{
int n;
while(~scanf("%d",&n))
{
double tmp;
for(int i=1;i<=n;i++)
tmp+=log10(double(i));
if(n==1)
printf("1\n");
else
printf("%d\n",int(ceil(tmp)));
}
return 0;
}