代码:
i=1; ①
while (i<=n)
i=i*2; ②
上面是别人的代码,这里举一个例子
由于 i 作为判断条件,并且执行语句也有 i 所以大家可以举一个例子理解一下,执行一次i=2(2^ 1),执行两次i=4(2^ 2),执行3次,i=8(2^3),…;假设执行了m次,注意并不是执行n次,我之前老是认为执行n次,大错特错了。所以得到一个公式 2 ^ m<=n, 同时取对数,ln(2 ^ m)<=ln(n),那么就需要将底为e转换到标准的底为10 的对数下面,得到m<=log2n (注意此对数log是以10为底的对数),
以上就是个人理解了~~,有更好的想法欢迎指点小弟~~