POJ1423
题意
求n!的位数
思路
不会做,上网查了之后,别人都是用斯特林公式。学习这个公式之后,就简单了了
#include <iostream>
#include <cmath>
using namespace std;
double const pi = acos(-1.0);
double const e = exp(1.0);
double stirlingDigitNum(int n){
return log10(2*pi*n)/2.0 + n*log10(n/e);
}
int main(){
int n,i;
cin>>n;
while(n--){
cin>>i;
double ans = stirlingDigitNum(i);
int a = (int)(ans + 1);
cout<<a<<endl;
}
return 0;
}
网友评论