求10的7次方阶乘的位数

关注
求10的7次方阶乘的位数www.shan-machinery.com阅读更多

即使找到最先进的计算大数阶乘的算法, 若完全计算10的7次阶乘,然后统计其位数,也需要几十分钟才行。 所以不可行,况且题目只需要求其位数。

那该怎么计算呢?非常的简单,其实是纯粹的数学问题。 现由斯特林[striling]公式可得: lnN!=NlnN-N+0.5ln(2N*pi)

而10的7次方阶乘的位数等于: log10(N!)取整后加1 log10(N!)=lnN!/ln(10)

所以整个结果用c描述:

#include #include #define PI 3.14159265 #define N 10000000 int main(){ int len; len=ceil((N*log(N)-N+log(2*N*PI)/2)/log(10));//ceil求上界,即不小于某值的最小整数 //log在c语言里面是自然对数 printf("%d\n",len); return 0;}

 

len=65657060

1 顶3 踩分享到:GRZSP-负责任地设计对象12011-09-18 11:09浏览 1549评论(0)分类:编程语言查看更多评论发表评论

您还没有登录,请您登录后再发表评论

https://www.shan-machinery.com