阶乘位数
9的阶乘等于:362880
它的二进制表示为:1011000100110000000
这个数字共有19位。
请你计算,9999 的阶乘的二进制表示一共有多少位?
注意:需要提交的是一个整数,不要填写任何无关内容(比如说明解释等)
import math
num=0
for i in range(1,10000):
num=num+math.log2(i)
print(int(num+1))
答案:118445
参考:
我们不直接估计n!,而是考虑它的自然对数:
ln(n!) = ln 1 + ln 2 + ... + ln n.
按一般方法计算N的阶乘,其时间复杂度为O(N):
N!= 1 * 2 * 3 * 4 * 5 * ............ * N;
如果要计算N后得到的数字为几位数,则我们可以知道其位数等于lgN!+1;
来源:CSDN
作者:tianrandai12
链接:https://blog.csdn.net/tianrandai12/article/details/104094849