补全Python二分查找代码,在非降密码本序列中查找最接近电子钥匙的整数(多解取最小)

dk822117 程序题 共 个子题

密码问题

根据密码本和电子钥匙,破解笔记本电脑的密码。 密码本是一个非降的整数序列,电子钥匙是一个整数,得到密码的方法是在密码本中找到最接近电子钥匙的整数(如果多个符合条件,输出最小的一个)。

示例

密码本为下面的列表: a = [1,22,43,45,45,55,60,70,89] 电子钥匙为整数44,满足条件的整数为43和45,最终的密码为43。

请补全下面的代码:

a = [1,22,43,45,45,55,60,70,89] # 密码本
k = int(input())   # k为电子钥匙
l = 0
r = 8
while l + 1 != r:
    mid = int(   ①   )
    if a[mid] < k:
           ②
    else:
        r = mid
    if a[r] == k:
           ③
if k - a[l] <=     ④    :
    print(a[l])
else:
    print(⑤)

本题为编程题,提交代码并运行通过测试点后判分。

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
提交记录
共 条 仅展示自由练习提交
正在加载提交记录…
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧