求n!的位数以及求n!具体的值(C or C++)

首先我们先求n!位数 
可以将n!表示成10的次幂,即n!=10^M(10的M次方)则不小于M的最小整数就是 n!的位数,对该式两边取对数,有 M =log10^n! 
即: 
M = log10^1+log10^2+log10^3…+log10^n 
循环求和,就能算得M值,该M是n!的精确位数。

接下来,求n!的具体值 
具体题目原型来自HDOJ :http://acm.hdu.edu.cn/showproblem.php?pid=1042

C++ Version:

 

C Version:

 

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注