麻省理工学院 Python 编程课程第 8 讲有一段代码。
def(x):
assert type(x) == int and x >= 0
answer = 0
s = str(x)
for c in s :
answer += int(c)
return answer
正如教授所说,这段代码的复杂度是(x)的以 10 为底的对数。他解释说(正如我能够理解的那样),每次循环迭代,C 可以是十位数字(0-9)之一,这使得以 10 为底的对数。
但是我无法理解,为什么会这样?原因复杂性实际上取决于列表 S 的长度,而不是 C 的选择变化。
有人可以解释一下吗?