数的长度

描述

    N!阶乘是一个非常大的数,大家都知道计算公式是N!=N*(N-1)······*2*1.现在你的任务是计算出N!的位数有多少(十进制)?

 
输入
首行输入n,表示有多少组测试数据(n<10)
随后n行每行输入一组测试数据 N( 0 < N < 1000000 )
输出
对于每个数N,输出N!的(十进制)位数。
样例输入
3
1
3
32000
样例输出
1
1
130271

 1 import java.util.Scanner;
 2 
 3 public class Main {
 4     public static void main(String[] args) {
 5         Scanner scanner=new Scanner(System.in);
 6         int T;
 7         int number;
 8         int i;
 9         double count;
10         
11         T=scanner.nextInt();
12         while(T!=0){
13             T--;
14             
15             count=0;
16             number=scanner.nextInt();
17             
18             if(number==1){
19                 System.out.println("1");
20                 continue;
21             }
22             
23             for(i=1;i<=number;i++){
24                 count+=Math.log10(i);
25             }
26             System.out.println((int)Math.ceil(count));
27             
28         }    
29     }
30 }
31             
32             

 

 
posted @ 2014-12-01 16:28  zqxLonely  阅读(256)  评论(0编辑  收藏  举报