N的阶乘的长度
阶乘是乘法 , 乘法的话 , 几位数*几位数的位数 就是 哪两个几位数相加 . 这个可以用log10来解决 , 所以有如下代码 .
1 #include<stdio.h> 2 #include<string.h> 3 #include<math.h> 4 #include<iostream> 5 #include<algorithm> 6 #include<queue> 7 #include<vector> 8 #include<set> 9 #include<stack> 10 #include<string> 11 #include<sstream> 12 #include<map> 13 #include<cctype> 14 #include<limits.h> 15 using namespace std; 16 int main() 17 { 18 double maxn=0; 19 int n,t; 20 scanf("%d",&t); 21 while(t--) 22 { 23 maxn=0; 24 scanf("%d",&n); 25 for(int i=1;i<=n;i++) 26 maxn+=log10(i); 27 printf("%d\n",(int)maxn+1); 28 } 29 }