做了一道巨水,巨坑人的题!
首先自己按照LRJ上的那道超大数阶乘把n!算出来了,存在字符串里,然后输出有效位长度,结果毫无疑问TLE!
然后读了一个博客,找到一个公式:
n!=n*(n-1)*(n-2)*…..*1
n的位数=[lg(n)]+1;
所以:n!的位数=[lg(n*(n-1)*(n-2)*…..*1)]+1=[lgn+lg(n-1)+lg[n-2]+….+lg1]+1;
很快把程序写出来,提交,依旧TLE!
这个博客http://hi.baidu.com/silverxinger/blog/item/ba93a015747c1a1eb8127b5f.html
里说到了《圣经---计算机程序设计艺术》里提到的一个公式,对这道题的解法至关重要。
看完那个没什么规律的变态公式,然后直接代公式,提交AC。
哎,坑人。
归根结底:自己水平还是不够。
本文分享了解决大数阶乘位数计算问题的经验,包括初尝试使用直接计算方法导致超时,后续通过查找并应用公式简化计算过程,并最终采用特殊公式AC解题的方法。强调了自我水平提升的重要性。

1541

被折叠的 条评论
为什么被折叠?



