HDU-1018 Big Number 当前位置: Home » algorithm » HDU-1018 Big Number ### 题目: ### description: In many applications very large integers numbers are required. Some of these applications are using keys for secure transmission of data, encryption, etc. In this problem you are given a number, you have to determine the number of digits in the factorial of the number. ### Input: Input consists of several lines of integer numbers. The first line contains an integer n, which is the number of cases to be tested, followed by n lines, one integer 1 ≤ n ≤ 107 on each line. ### Output: The output contains the number of digits in the factorial of the integers appearing in the input. ### Sample Input 2 10 20 ### Sample Output 7 19 ### 解析: #### 1\. 本题题意,求阶乘结果的位数 #### 2\. 本题其实就是一个数学公式解决。斯特林公式:lnN!=NlnN-N+0.5*ln(2*N*pi) #### 3\. [百度百科链接][1] #include #include #define pi 3.1415926 int main() { int ans,i,t,n; scanf("%d",&t); while(t--) { scanf("%d",&n); ans=(n*log(n)-n+0.5*log(2*n*pi))/log(10); ans+=1; printf("%d\n",ans); } return 0; } [1]: https://baike.baidu.com/item/%E6%96%AF%E7%89%B9%E6%9E%97%E5%85%AC%E5%BC%8F/9583086?fr=aladdin
Comments | NOTHING