问答

当前位置
  • 首页
  • 问答
  • 练习1的C代码如何用Python语言实现呢?

练习1的C代码如何用Python语言实现呢?

  • by JACK
  • 3
  • 1 年,1 月前
  • Ta: 克里斯本-助教

此问题来源于微课:九章算法班随课教程
sum = 0;
for (int i = 1; i < n; i *= 2) {
sum++;
}

3 个回复

2018-09-17 安助教
sum = 0
for i in [1<<i for i in range(int(log(n,2)))]:
    sum += 1

2018-10-04 JACK

谢谢,您的代码我跑了,很不错,我还解决了一个报错,就是导入math包才跑通,写的很巧妙的答案,

新的问题,i *= 2代表什么意思呢?

我认为就是每次让 i 每次都乘以2,然后和n比较,符合条件就sum加一。

所以还是没有搞懂为啥时间复杂度就是log(n)


2018-10-04 JACK

图片
看了这个推导,明白了,谢谢,就是log(n)没错

我来回答

您没有权限

为提高问答质量,问答版块发言权限只向九章学员开放

登录 注册

© Jiu Zhang 2013-. All rights reserved. 京ICP备16004690号-1