猜数字游戏
在一个黑盒排序数组中,不知道取出的某个数是否为最后满足条件的数,就需要做一些调整。
这个代码是二分法的变体,当找到值后还需要继续二分,一直找到满足条件的边界的数才跳出循环
def get(url):
x = 456
if url > x:
return 404
else:
return 200
def main():
first = 0
last = 999
while True:
mid = (last + first) // 2
if get(mid) == 200:
if abs(last - first) <= 2:
print("结果:", mid)
break
else:
first = mid
else:
last = mid