深耕专业教研,探索前沿技术
信息技术来源:浙江强基联盟2026年3月高三联考

第 11 题

答案与解析

本题解析

参考答案

B

程序分析

if k == 0:
    return [1]
prev = [1, 1]
for i in range(2, k + 1):
    ...
return prev

主程序调用fun(4),传入k=4。程序从prev=[1, 1]开始,外层循环中i依次取2、3、4,最后返回prev。

curr = [1]
left, right = 0, 1
while right < len(prev):
    curr.append(prev[left] + prev[right])
    left += 1
    right += 1

curr 先放入首项 1。left、right 始终相差 1,并同步向右移动,因此循环把 prev 中每对相邻元素的和依次追加到 curr 中。

curr.append(1)
prev = curr

在curr末尾补上1,再将prev更新为curr,供下一轮计算使用。每轮得到的新列表首尾为1,中间各项为上一轮相邻两项之和。

这正是逐行生成杨辉三角的规则。按该规则计算:

阶段 prev
初始 [1, 1]
i=2后 [1, 2, 1]
i=3后 [1, 3, 3, 1]
i=4后 [1, 4, 6, 4, 1]