stirling公式:
Len= log10 (n!) +1;
注意: 因为math.h中的log是以自然对数为底的所以应该换底,同时注意利用对数对公式的化简。
代码:
//hdu 1018 Big Number(n! digits stirling) #include #include#include #define pai acos(-1.0) using namespace std; int main() { int t,n; int len; double tmp; scanf("%d",&t); while(t--){ scanf("%d",&n); tmp=0.5*log(2*pai*n) + n*log(n*1.0) - n; len=(int)(tmp/log(10.0))+1; printf("%d\n",len); } return 0; }