帕斯卡三角形中的Python递归

时间:2018-01-10 10:02:31

标签: python python-3.x recursion

有人可以向我详细解释这段代码吗?我试图了解递归在这里是如何工作的,尤其是previous_lines如何构建为列表。我对n == 2的问题感到困惑,我想知道为什么它没有显示previous_lines [i + 1]的数组错误,其中previous_lines在使用n == 2时甚至没有2个元素。我推测,在n == 2

时,previous_lines只有[1]
def pascal(n):
    if n == 1:
        return [1]
    else:
        line = [1]
        previous_line = pascal(n-1)
        for i in range(len(previous_line)-1):
            line.append(previous_line[i] + previous_line[i+1])
        line += [1]
    return line

print(pascal(6))

0 个答案:

没有答案