A48752. 密码问题:根据密码本和电子钥匙, 破解笔记本电脑的密码。密码本是一个非降的整数序列, 电子钥匙是一个整数, 得到密码的方法是在密码本中找到最接近电子钥匙的整数(如果多个符合条件, 输出最小的一个)。例如:密码本为下面的列表a=[1,22,43,45,45,55,60,70,89]电子钥匙为整数 44满足条件的整数为 43 和 45, 最终的密码为 43补全下面的代码:a=[1,22,43,45,…
填空题
困难
知识点
题目描述
密码问题:
根据密码本和电子钥匙, 破解笔记本电脑的密码。
密码本是一个非降的整数序列, 电子钥匙是一个整数, 得到密码的方法是在密码本中找
到最接近电子钥匙的整数(如果多个符合条件, 输出最小的一个)。
例如:
密码本为下面的列表
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(⑤)
参考答案
a=[1,22,43,45,45,55,60,70,89] #密码本
k=int(input()) #k 为电子钥匙
l=0
r=8
while l+1!=r:
mid=int (((l+r)/2)
if a[mid]<k:
l = mid
else:
r=mid
if a[r]==k:
break
if k-a[l] <= a[r]-k:
print(a[l])
else:
print(a[r])
上一题
下一题