谁帮忙看下WHILE语句的重复次数??

来源:百度知道 编辑:UC知道 时间:2024/06/27 08:31:21
已知n为一正整数,s = 0; i = 1;while (i < n){i = i *2; s = s + i;}
问循环体的重复次数,答案是log2(n).为什么?
如果i=6呢??

你这个题是不是写错了?

S初始化为0,在while循环中它一直赋值,然而S在题目中存在的意义是什么?

按你写的,如果n为3,while支循环两次,那么log2(3)!= 2 吧。

log2(n)-3
猜的~

判断条件不是 i<n 吗,而循环体里 i=i*2, 是按照2的倍速增长的,而初始值 i=1, 说以循环次数是 log2(n).
如果i=6, 那么循环次数是 log2(n/6).
i设置不同的初始值,循环次数为 log2(n/i).