HDU 1018 Big number 斯特林公式,lnN!=NlnN-N+0.5*ln(2*N*pi)
这道数学题用到了数论中的一个公式,叫做斯特林公式,lnN!=NlnN-N+0.5*ln(2*N*pi)
//============================================================================
// Name : HDU.cpp
// Author : lonelycatcher
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
#include<stdio.h>
#include<cstdlib>
#include<math.h>
using namespace std;
#define PI 3.141592653
int N;
void solve(int num)
{
double ans=(num*log(num)-num+0.5*log(2*num*PI))/(log(10));
printf("%d\n",(int)ans+1);
}
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
scanf("%d",&N);
solve(N);
}
return 0;
}
posted on 2011-07-25 09:56 lonelycatcher 阅读(1397) 评论(0) 编辑 收藏 举报