博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[POJ1423]Stirling公式的应用
阅读量:4573 次
发布时间:2019-06-08

本文共 583 字,大约阅读时间需要 1 分钟。

Stirling公式:

  n!约等于sqrt(2*pi*n)*(n/e)^n

  另外,e约等于2.71828182845409523...

  试了一下发现math库里面并不能像pi一样直接调e但是发现挺好记的。。>_<

 


 

POJ1423

  题面很简单,就是让我们计算n!的位数。

  我们知道十进制数的位数=trunc(ln(n)/ln(10))+1

  而对于n=a*b,ln(n)=ln(a)+ln(b)

  所以ln(sqrt(2*pi*n)*(n/e)^n)=ln(sqrt(2*pi*n))+n*ln(n/e),对于每个询问就可以O(1)求出位数辣!

 

1 program poj1423; 2 const e=2.7182818284590452354; 3 var t,test,n:longint; 4 begin 5     readln(test); 6     for t:=1 to test do  7     begin 8         readln(n); 9         writeln(trunc((n*ln(n/e)+ln(sqrt(2*pi*n)))/ln(10))+1);10     end;11 end.

 

转载于:https://www.cnblogs.com/mjy0724/p/4372579.html

你可能感兴趣的文章
dict使用
查看>>
ASP.NET MVC的帮助类HtmlHelper和UrlHelper
查看>>
02_ListActive中响应事件 并LogCat输出
查看>>
doubleclick adx note
查看>>
Celery框架
查看>>
[c#]asp.net开发微信公众平台(4)关注事件、用户记录、回复文本消息
查看>>
[转载,感觉写的非常详细]DUBBO配置方式详解
查看>>
Android在Eclipse上的环境配置
查看>>
面向对象(五)
查看>>
android平台下使用点九PNG技术
查看>>
Python学习3,列表
查看>>
最长回文子串
查看>>
JAVA基础-JDBC(一)
查看>>
js中for和while运行速度比较
查看>>
算法第5章作业
查看>>
7.9 练习
查看>>
基于ArcGIS JS API的在线专题地图实现
查看>>
learnByWork
查看>>
lua 函数
查看>>
Git的基本命令
查看>>