while循环执行多少次?

ogu*_*gun 0 algorithm

昨天我申请了计算机工程硕士学位,这是他们的问题之一.我无法解决它,所以我非常好奇.

...
i = 1;
while (i <= n)
{
    i = i * 2;
}
...
Run Code Online (Sandbox Code Playgroud)

这个while循环执行多少次,请将您的答案作为公式.例如:log n ...

谢谢

Vic*_*let 6

在循环的第x 迭代中,i等于2 x(您可以通过归纳轻松证明这一点).假设X迭代之后的循环停止,这是指N <2 X.这也意味着在迭代X-1上,循环仍在运行,因此2 X- 1≤n.换一种说法 :

2 X- 1≤n<2 X.

从那里,找到X作为log 2(n)的函数很容易.

  • @zafiyet:你在那里遵循一个奇怪的逻辑.如果你已经学过数学,你应该能够计算出来 (3认同)
  • @Hernan:您需要的额外操作是地板功能 (2认同)