题库首页 › 青少年软件编程(Python) › 题目 18939

智能家居系统 在智能家居系统中,我们可以通过中央控制系统来管理各个房间的智能灯。为了简化问题,假设每个房间有一个智能灯,其状态用1表示开,0表示关。我们的任务是计算家里所有开着的灯的数量。我们将采用分治算法的思想来解决这个问题。 请补全以下代码,使用分治算法实现统计列表中开着的灯(值为1)数量的功能。 def count_lights_on(rooms): # 如果列表为空,直接返回0 if not rooms: return 0 # 如果列表只有一个元素,直接判断是否为开着的灯 if len(rooms) == 1: return rooms[0] # 将列表分为两部分 mid = ① left_rooms = rooms[:mid] right_rooms = rooms[mid:] # 使用分治递归统计每部分开着的灯的数量 count_left = ② count_right = count_lights_on(right_rooms) # 返回总开着的灯的数量 return ③ # 示例测试 rooms = [1, 0, 1, 0, 1, 0, 1] # 1代表灯开着,0代表灯关着 print(count_lights_on(rooms)) # 输出应为4

正确答案:补全答案(Python智能灯分治):①len(rooms)//2 ②count_lights_on(left_rooms) ③count_left+count_right。核心:分治递归统计。

试卷来源:202603 青少年软件编程等级考试Python四级真题

本卷相关题目

在线做题 同科目题库