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

相關文章
相關標籤/搜索