因为bit的值的最大值为220 所以不能把能表示的最大值(2的220次方)存储在语言
的任何内置类型中,考虑一下用大整数,但是有点麻烦。有没有其他的方法呢???
先看看本题如何求解,题目的要求是i!能够放在bit位二进制的表示的整数中求i的最
大值。本题的技巧在于要使用log函数即以e为底的对数,由对数的性质我们可以知道
ln(N!) = ln(1) + ln(2) + ... + ln(N); 而我们可以对能表示的数取对数即ln(2bit) =
bit * ln(2)。所以问题的求解就是找到第一个i使得ln(i!) 大于bit * ln(2),则结果为
i - 1。