计算N!的十进制位数

 

Description:编程计算N!是十进制几位数?

Sample Input:1000000

Sample Output:5565709

分析:利用Stirling公式。

          


My Code:

 1  #include  < stdio.h >  
 2  #include < math.h >  
 3  #define  LGPI 0.3990899341            // 0.5*lg2*pi 
 4  #define  LGT  0.4342944819           // lge 
 5  int  main() 
 6 
 7      long   int  n; double  r; 
 8      while (scanf( " %ld " , & n) != EOF) 
 9     { 
10       r = LGPI + log10(n) * (n + . 5 ) - n * LGT; 
11       printf( " %ld\n " ,( long )r + 1 ); 
12     } 
13      return   0 ;
14  }


转载于:https://www.cnblogs.com/norx/archive/2009/02/05/1384294.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值