#include <stdio.h>
#include <iostream>
#include <math.h>
#include <string.h>
using namespace std;
char A[10000];
int main(){
int n;
double z;
memset(A,0,sizeof(A));
scanf("%d",&n);
while(n--)
{
z=1;
int a;
scanf("%d",&a);
for(int i=1;i<=a;i++)
{
z+=log10(i);
}
printf("%d\n",(int)z);
}
return 0;
}
我从HDU分类最简单的数学题开始做起。
这是第一道,直接1A了。
思路是因为n!十分大,但是既然是位数,那就以10的x次方表示位数。
1*2*3*~~~*n=10^x。
log10(10^x)=log10(1*2*3*~n)
则x=log10*(1)+log10(2)+log10(3)。。。。。。。。。。。。。。
那么程序就是一个for循环加上函数。
所以就1A了。