1 /*数的长度 2 时间限制:3000 ms | 内存限制:65535 KB 3 难度:1 4 描述 5 N!阶乘是一个非常大的数,大家都知道计算公式是N!=N*(N-1)······*2*1.现在你的任务是计算出N!的位数有多少(十进制)? 6 7 输入 8 首行输入n,表示有多少组测试数据(n<10) 9 随后n行每行输入一组测试数据 N( 0 < N < 1000000 ) 10 输出 11 对于每个数N,输出N!的(十进制)位数。 12 样例输入 13 3 14 1 15 3 16 32000样例输出 17 1 18 1 19 130271 20 来源 21 ACM教程 22 上传者 23 rooot 24 25 */ 26 #include<stdio.h> 27 #include<math.h> 28 int main() 29 { 30 int n; 31 scanf("%d",&n); 32 while(n--) 33 { 34 int m, wei=1, i; 35 double t=1; 36 scanf("%d",&m); 37 for(i=1;i<=m;i++) 38 t=t+log10(i); 39 wei=(int)t;//确定m的位数 40 printf("%d\n",wei); 41 } 42 return 0; 43 }
原文:http://www.cnblogs.com/a604378578/p/3649963.html