做了一道巨水,巨坑人的题!
首先自己按照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。
哎,坑人。
归根结底:自己水平还是不够。