HDOJ 1018 Big Number
此题需要一些小小的数学知识。lg(N!)=lg(1)+lg(2)+…+lg(N)。而一个数的位长也刚好是其lg值+1。所以有以下代码:
#include<stdio.h>
#include<math.h>
int main()
{
int caseNum,end;
double result;
scanf("%d",&caseNum);
while(caseNum--)
{
scanf("%d",&end);
result=1;
for(int i=2;i<=end;i++)
result+=log10(i*1.0);
printf("%d\n",(int)result);
}
return 0;
}

浙公网安备 33010602011771号