HDU 1018 Big Number

LINK:HDU 1018  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

相关文章
相关标签/搜索