数的长度

描述

  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 #include <stdio.h>
 2 #include <math.h>
 3 
 4 int main()
 5 {
 6     int n, m, i;
 7     double res;
 8     scanf("%d", &n);
 9     while (n--)
10     {
11         scanf("%d", &m);
12         res = 1.0;
13         for (i = 1; i <= m; i++)
14         {
15             res += log10((double)i);
16         }
17         printf("%d\n", (int)res);
18     }
19     return 0;
20 }

 

posted @ 2016-05-09 22:22  新生代黑马  阅读(110)  评论(0编辑  收藏  举报