#背后涵盖的数学知识:可以将二分的过程看作是2的n次幂的反向过程,也就是logx = n的过程
#二分法函数
def binary(lines, k):
min = 0
max = len(lines) - 1
a = min + max // 2
i = 0 # 测试次数
while True:
i += 1
if lines[a] == k:
break
elif k > lines[a]:
min = a + 1
else:
max = a - 1
a = (min + max) // 2
return lines[a], i
#主程序
lines = list(range(0, 101, 2))
k = int(input('请输入设定的数字: '))
if k not in lines:
print('没有这个数字')
else:
a, i = binary(lines, k)
print('这个数字是:', a)
print('一共猜了' + str(i) + '次')
binary_research_python
最新推荐文章于 2024-06-29 11:48:20 发布