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分)
上一题
下一题