测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A34221. 学校图书馆为了方便查找管理书籍,给每本书编写了号码,[8,9,10,12,13,14,16,17,25,27],输入号码提示这本书号码排第几。例如:输入12,输出:要查找的书号12排第4 。请完善程序:lst=[8,9,10,12,13,14,16,17,25,27]hm=int(input('请输入书本号码'))______①______i,j=0,n-1b=-1while ______②__…

填空题 中等

题目描述

学校图书馆为了方便查找管理书籍,给每本书编写了号码,[8,9,10,12,13,14,16,17,25,27],输入号码提示这本书号码排第几。

例如:输入12,输出:要查找的书号12排第4 。

请完善程序:

lst=[8,9,10,12,13,14,16,17,25,27]

hm=int(input('请输入书本号码'))

______①______

i,j=0,n-1

b=-1

while ______②______ :

    m=(i+j)//2

    if ______③______ :

         b=m

         break

    elif hm>lst[m]:

         ______④______

    else:

         j=m-1

if b==-1:

     print('要查找的书号['+str(hm)+']不在列表lst中。')

else:

     print('要查找的书号['+str(hm)+']排第'+ ______⑤______ )

参考答案

lst=[8, 9, 10, 12, 13, 14, 16, 17, 25, 27] hm=int(input(' 请输入书本号码' ) ) n=len(lst) i, j=0, n-1 b=-1 while i<=j: m=(i+j) //2 if hm==lst[m]: b=m break elif hm>lst[m]: i=m+1 else: j=m-1 if b==-1: print(' 要查找的书号[' +str(hm) +' ]不在列表 lst 中。 ' ) else: print(' 要查找的书号[' +str(hm) +' ]排第' +str(b+1))
上一题 下一题