这道题的核心是数学知识,首先需要了解斯特林(stirling)公式可以参见文库http://wenku.baidu.com/view/85024bc24028915f804dc23c.html
在许多过于野蛮求解会造成溢出的题目中,我们要善于寻找数学上的知识来求解。
1.好的,首先说一说stirling公式的用处
stirling公式的内容主要针对于于求解n的阶乘n!,
说的是n很大的时候,n!与√(2πn) * n^n * e^(-n)的值十分接近,这就是Stirling公式.
虽然我们知道许多的公式与不等式,但是不能很好的对n!进行估计,尤其是在n很大之后,将造成极大误差,stirling公示的好处就是,当n越大时估计的越准确,具体证明不是本文的重点。
2.第二个需要注意的知识就是,极大数位数的求法
求解一个极大数的位数时,一般我们可以用公式位数=[ lg1+lg2+……lg(N-1)+lgN ] + 1。
这也是我们解题的一个关键数学知识。
AC代码如下
![](https://img-my.csdn.net/uploads/201210/08/1349680282_3556.jpg)
祝君好运