python中怎么实现一个杨辉三角

2023-04-16 19:44:00 python 杨辉三角

在Python中实现杨辉三角,可以使用循环和列表推导式,也可以使用递归函数。

首先,我们要了解杨辉三角的特点。杨辉三角是由一个二项式系数组成的一个等边三角形,每一行的数字等于上一行的数字加上它自身,从左到右依次递增,最后一行的数字都是1。

使用循环和列表推导式实现杨辉三角,我们可以先定义一个空的列表,然后通过循环构建每一行的数字,从上到下逐行构建,每一行的数字等于上一行的数字加上它自身,最后一行的数字都是1。

下面是代码示例:

```python #定义函数 def yanghui(n): #定义一个空的列表 result = [] #外层循环,控制行数 for i in range(n): #每一行的第一个数字都是1 row = [1] #内层循环,控制每一行的数字 for j in range(i): #如果不是第一行 if i > 0: #当前行的数字等于上一行的数字加上它自身 row.append(result[i-1][j] + result[i-1][j+1]) #最后一个数字也是1 row.append(1) #将每一行的数字添加到结果列表中 result.append(row) #返回结果 return result #调用函数 yanghui(5) #输出结果 [[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]] ```

另一种实现杨辉三角的方法是使用递归函数。递归函数是一种使用函数调用自身的编程技巧,可以用来解决一些复杂的问题。

下面是代码示例:

```python #定义函数 def yanghui(n): #如果n为1,则返回[1] if n == 1: return [1] #如果n大于1,则调用自身函数 else: #获取上一行的数字 last_row = yanghui(n-1) #定义一个空的列表 result = [] #循环每一行的数字 for i in range(n): #如果是第一个数字或最后一个数字,则为1 if i == 0 or i == n-1: result.append(1) #否则,则为上一行的数字加上它自身 else: result.append(last_row[i] + last_row[i-1]) #返回结果 return result #调用函数 yanghui(5) #输出结果 [1, 4, 6, 4, 1] ```

通过以上两种方法,我们可以实现一个杨辉三角。

相关文章