Big Number
这道题虽然我是用java解的,但是并没有用到java中大数的类。因为直接用java的大数来模拟的话,也会超时。这时需要了解一个数学原理
1×2×3×……×1000的位数=log+log2+log3+……+log1000+1
阶乘结果的位数:log1+log2+log3+log4+...+logn 取整加1
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String []args)throws Exception{
Scanner cin = new Scanner(System.in);
int t = cin.nextInt();
while(t--!=0){
String a=cin.next();
int n = Integer.parseInt(a);
System.out.println(digit(n));
}
cin.close();
}
public static int digit(int n){
double sum=0;
for(int i=1;i<=n;i++)
{
double t = Math.log10(i);
sum+=t;
}
return (int)sum+1;
}
}