智能家居系统

ti082889 程序题 共 个子题

题目说明

在智能家居系统中,我们可以通过中央控制系统来管理各个房间的智能灯。为了简化问题,假设每个房间有一个智能灯,其状态用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

评分标准

(1)len(rooms) // 2 (或等效答案);(3分)

(2)count_lights_on(left_rooms)(或等效答案);(2分)

(3)count_left + count_right (或等效答案)。(3分)

本题为编程题,提交代码并运行通过测试点后判分。

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
提交记录
共 条 仅展示自由练习提交
正在加载提交记录…
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧