LINK:php
题意:求n!的位数~ios
因为n!最后获得的数是十进制,故对于一个十进制数,求其位数能够对该数取其10的对数,最后再加1~ui
易知:n!=n*(n-1)*(n-2)*......*3*2*1spa
∴lg(n!)=lg(n)+lg(n-1)+lg(n-2)+......+lg(3)+lg(2)+lg(1);code
代码:blog
1 #include <iostream> 2 #include <cstdio> 3 #include <cmath> 4 using namespace std; 5 6 int main() 7 { 8 int t; 9 scanf("%d",&t); 10 while(t--) 11 { 12 double i,n,sum; 13 scanf("%lf",&n); 14 for(i=1,sum=0;i<=n;i+=1) 15 sum+=log10(i); 16 printf("%d\n",(int)sum+1); 17 } 18 return 0; 19 }
//memory:248KB time:406msget