HDU 1018(求一个数阶乘的位数)

问题描述:

HDU 1018(求一个数阶乘的位数)
(1)、弄清题意,是求一个数阶乘的位数
(2)、利用数学公式(斯特林公式:lnN!=NlnN-N+0.5*ln(2*N*pi))求出位数即可
注意:输出的格式
做题感想:但是一开始做题的时候,对如何求一个数阶乘
的位数真的无从入手,上网搜一下方法,才可以入手.看来对于数学的思想的环
节,自己还是很薄弱,需要加强.
代码:
#include
#include
#define pi 3.14159265
int num,result;
void JC()
{
double t;
t = (num*log(num) - num + 0.5*log(2*num*pi))/log(10);
result = (int)t+1;
printf("%d\n",result);
}
int main()
{
int i,n;
scanf("%d",&n);
for( i=0 ; i

N次方阶乘的位数等于: log10(N!)取整后加1