刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

新学期到了,学校接收了一批捐赠的图书,小明编写了一个简单的程序用来管理图书,并支持借阅功能。为了提高查找图书的效率,小明使用了二分查找法来设计图书借阅功能。以下是小明编写的图书借阅管理程序,请你补全代码。 library=dict() #用字典生成一个图书管理数据结构(字典的键为编号,字典的值为[‘书名’,本数]) #书籍入库 nums=len(library) #先计算图书编号总数 library[nums+1]=[‘红楼梦’,5] #在编号总数的基础上继续添加新书:library[新编号]=[‘书名’,本数] library[nums+2]=[‘西游记’,10] library[nums+3]=[‘水浒传’,5] library[nums+4]=[‘三国演义’,10] print(library) blist=list(library.keys()) #按书名借阅: bookname=input(‘请输入借阅图书名称:’) min_v = blist[0] max_v = blist[-1] turns=0 while min_v <= ++++: turns += 1 cur = (min_v + max_v)++++ print(cur) if library[cur][0] == ++++ : if library[cur][1] > 0: library[cur][1] -= ++++ print(‘《%s》借阅成功!’%bookname) else: print(‘抱歉,您选择的书籍已被借完!’) break elif blist[cur-1] > cur: min_v = ++++ else: max_v = ++++ print(“经过%d轮二分查找,完成图书的搜索。”%turns)

使用微信搜索喵呜刷题,轻松应对考试!

答案:

参考程序:

学校图书管理系统

library=dict() #用字典生成一个图书管理数据结构(字典的键为编号,字典的值为[‘书名’,本数])

书籍入库

nums=len(library) #先计算图书编号总数 library[nums+1]=[‘红楼梦’,5] #在编号总数的基础上继续添加新书:library[新编号]=[‘书名’,本数] library[nums+2]=[‘西游记’,10] library[nums+3]=[‘水浒传’,5] library[nums+4]=[‘三国演义’,10] print(library)

blist=list(library.keys())

按书名借阅:

bookname=input(‘请输入借阅图书名称:’)

min_v = blist[0] max_v = blist[-1] turns=0

while min_v <= max_v: turns += 1 cur = (min_v + max_v) **//**2 print(cur) if library[cur][0]==bookname: if library[cur][1] > 0: library[cur][1] -= 1 print(‘《%s》借阅成功!’%bookname) else: print(‘抱歉,您选择的书籍已被借完!’) break elif blist[cur -1] > cur: min_v = cur +1 else: max_v =cur -1 print(“经过%d轮二分查找,完成图书的搜索。”%turns)

解析:

【喵呜刷题小喵解析】:该题目要求补全小明编写的图书借阅管理程序。小明使用二分查找法来查找图书,并实现了借阅功能。首先,小明创建了一个字典`library`来存储图书信息,字典的键为图书编号,值为一个包含书名和数量的列表。然后,小明定义了一个列表`blist`,用于存储图书编号。接下来,小明使用二分查找法来查找图书。在循环中,首先计算中间值`cur`,然后判断中间值对应的书名是否等于输入的书名。如果相等,再判断该书的数量是否大于0,如果大于0,则借阅成功,并更新书的数量;否则,提示该书已被借完。如果不相等,则根据中间值的位置来更新查找范围。最后,输出经过多少轮二分查找完成图书的搜索。注意,题目中的代码存在一些问题,例如,在`while`循环的条件中,应该使用`max_v`而不是`++①++`,`cur`的计算中应该使用`//`而不是`++②++`,`bookname`的比较中应该使用`bookname`而不是`++③++`,更新书的数量时应该使用`1`而不是`++④++`,更新查找范围时应该使用`cur + 1`和`cur - 1`而不是`++⑤++`和`++⑥++`。
创作类型:
原创

本文链接: 新学期到了,学校接收了一批捐赠的图书,小明编写了一个简单的程序用来管理图书,并支持借阅功能。

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share