题目大意: 输入n,然后求n的阶乘n!的位数
解题思路:
1)使用斯特林公式lnN!=NlnN-N+0.5ln(2N*pi)
代码如下:
/*
* 1018_2.cpp
*
* Created on: 2013年8月11日
* Author: Administrator
*/
#include <iostream>
#include <cmath>
using namespace std;
//acos相当于数学中arccos,反余弦函数
const double PI = acos(-1.0);
int main(){
int t;
scanf("%d",&t);
while(t--){
int n;
scanf("%d",&n);
double sum = (n*log(n) - n + 0.5*log(n*2*PI))/log(10);
cout<<(int)sum + 1<<endl;
}
}