当前位置:首页>python>【CIE】2021年09月Python四级 -- 第36题

【CIE】2021年09月Python四级 -- 第36题

  • 2026-08-27 10:28:10
【CIE】2021年09月Python四级 -- 第36题

跟老马一起“升级打怪”学编程!

旨在为小朋友们提供全面的学习材料,共同为等级考试做好准备。

添加小助手微信,回复【CIE四级2021.09_第36题】,获取本题源代码。

CIE四级2021.09_第36题

在编写抽奖程序时,为了保证一个人只有一次中奖机会,要检查新抽出来的数字是不是已经被抽中过了。

一种办法是将已经中过奖的人员编号存放在test_list里面,然后每抽出一个新的人员编号,判断它是否在中奖人员列表中。

如果没有在中奖人员列表中,说明中奖号码有效,并将它保存进中奖人员列表;如果已经在里面了,就再生成一个新的人员编号。

请你补全下面的代码,实现判断一个数字是否在列表中的功能。

# 子问题算法(子问题规模为1)defis_in_list(init_list, num):if init_list[0] == num:returnTrueelse:returnFalse# 分治法deffind_out(init_list, num):    n = len(init_list)if _____①_____  # 如果问题的规模等于1,直接解决return is_in_list(init_list, num)# 分解(子问题规模为n/2)    left_list, right_list = _____②_____# 递归(树),分治,合并    res = find_out(left_list, num) _____③_____ find_out(right_list, num)return resif __name__ == "__main__":# 测试数据    test_list = [18, 43, 21, 3, 28, 2, 46, 25, 32, 40, 14, 36]# 查找    print(_____④_____)  # True

参考答案:

① n==1:或其他正确答案

② init_list[:n//2],init_list[n//2:]或其他正确答案

③ or或其他正确答案

④ find_out(test_list,25) 或其他正确答案


青少年编程竞赛交流

「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),添加小助手微信,让他邀请大家进入学习群。进群之后大家可以参与定期组织的21天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。

最新文章

随机文章