while (num > 1)
{
cout << "num is now " << num << endl;
cout << "hello // \n";
num /= 2;
}
我试图给出印刷报表的大估计。
用户可以输入num
。我尝试了几个输入,并开始看到一个模式。
让p = the number of prints
。我看到给你一定数量打印的数字范围是2^p
那么O估计值是2^p
吗?
答案 0 :(得分:2)
你肯定在思考正确的方向,更重要的是 - 你正在以正确的方式解决问题。你的最终结论仍然有点偏离目标。尝试使用2 p 作为您计算的值,您将看到打印数量不是2 p ,而是此函数的反函数。
答案 1 :(得分:1)
这是O(log N)
。原因是每次迭代都会使范围减半。如果你熟悉二分搜索,那么你的循环就是做类似的事情。
您已正确观察2^p
模式。与此相反的是log base-2(而不是log base-10)。当人们在big-O表示法中提到log
时,他们通常指的是base-2版本。
答案 2 :(得分:0)