此代码系列中的术语数量?

时间:2012-12-08 15:19:26

标签: c

给出C代码

for(i=n,j=0 , i>0,i/=2 ,  j+=i)

for循环终止后j的值是多少?

在我的书的解决方案中,它始于:

j=n+n/2 +n/4+....+log n terms.

现在我可以理解上面的系列中是否有log n术语。

感谢任何帮助,谢谢。

2 个答案:

答案 0 :(得分:1)

这是具有 log 2 n 元素的几何系列的总和。总和取决于您的n,但无论如何都取决于2n。理论在这里:http://en.wikipedia.org/wiki/Geometric_progression

答案 1 :(得分:0)

log 2 n ,即n的二进制表示中的二进制位数(或最高1位的排名)

你犯了一个错字,你可能意味着

 for(i=n,j=0 ; i>0 ;  (i/=2), (j+=i));

所以你从i==n开始,然后将它减半,直到达到0(因此 log 2 n 循环次数。)