H. 数的长度
Time Limit: 3000ms
Memory Limit: 128000KB
64-bit integer IO format: Java class name:
N!阶乘是一个非常大的数,大家都知道计算公式是N!=N*(N-1)······*2*1.现在你的任务是计算出N!的位数有多少(十进制)?
Input
首行输入n,表示有多少组测试数据(n<10)
随后n行每行输入一组测试数据 N( 0 < N < 1000000 )
随后n行每行输入一组测试数据 N( 0 < N < 1000000 )
Output
对于每个数N,输出N!的(十进制)位数。
Sample Input
3 1 3 32000
Sample Output
1 1 130271
#include <stdio.h> #include<math.h> int main() { long n; long i; int k; scanf("%d",&k); double sum; while(k--) { scanf("%ld", &n); sum=1.0; for(i=2; i<=n; i++) { sum+=log10(i); } printf("%ld\n", (int)sum); } return 0; }