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

A23140. 猜价格爸爸五一旅游回来给小明购买了一文创礼物,问能否用最少的次数猜出礼物的价格。提示该礼物的价格在1-200之间,且是整数。小明编写如下Python程序解决该问题,输出结果中包含猜价格的过程以及猜的次数。请完善划线处的代码。price = int(input()) #存礼物的实际价格 def sear(p,pmin,pmax): i = pmin j = pmax s = '' c = 0 wh…

填空题 较难

题目描述

猜价格

爸爸五一旅游回来给小明购买了一文创礼物,问能否用最少的次数猜出礼物的价格。提示该礼物的价格在1-200之间,且是整数。小明编写如下Python程序解决该问题,输出结果中包含猜价格的过程以及猜的次数。请完善划线处的代码。

price = int(input()) #存礼物的实际价格
def sear(p,pmin,pmax):
    i = pmin
    j = pmax
    s = ''
    c = 0
    while ______①________ :
        c = c + 1
        m = (i + j)//2
        if m == p:
            s = s  + str(m) + ','
            ______②________                
        elif m < p:            
            i = m + 1
        else:
             _______③ _______              
        s = s  + str(m) + ','
    return s,c
pmin = 1
pmax = 200
rst , c = sear(price,pmin,pmax)
print('猜价格的过程是',rst)
print('一共猜了',c,'次就猜对价格')

参考答案

price = int(input())#存礼物的实际价格 def sear(p,pmin,pmax): i = pmin j = pmax s = '' c = 0 while i <= j: c = c + 1 m = (i + j)//2 if m == p: s = s + str(m) + ',' break elif m < p: i = m + 1 else: j = m - 1 s = s + str(m) + ',' return s,c pmin = 1 pmax = 200 rst , c = sear(price,pmin,pmax) print('猜价格的过程是',rst) print('一共猜了',c,'次就猜对价格')

答案解析

评分标准:

(1)i <= j 或等效答案;(3分)

(2)break 或等效答案;(3分)

(3)j = m - 1 或等效答案。(2分)

上一题 下一题