问题描述
在许多应用中,需要非常大的整数。其中一些应用程序使用密钥来安全传输数据、加密等。在这个问题中,你会得到一个数字,你必须确定数字阶乘中的位数。
输入
输入由几行整数组成。第一行包含一个整数 n,即要测试的案例数,后跟 n 行,每行一个整数 1 ≤ n ≤ 107。
输出
输出包含输入中出现的整数的阶乘位数。
示例输入
2
10
20
示例输出
7
19
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
while (T-- != 0) {
int n = sc.nextInt();
double sum = 0;
for (int i = 1; i <= n; i++) {
double t = Math.log10(i);
sum += t;
}
System.out.println((int)sum + 1);
}
}
}