python 基础练习 杨辉三角
一、问题描述
杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。
它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。
下面给出了杨辉三角形的前4行:
1
1 1
1 2 1
1 3 3 1
给出n,输出它的前n行。
二、输入格式
输入包含一个数n。
三、输出格式
输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔。请不要在前面输出多余的空格。
四、样式输入
4
五、样式输出
1
1 1
1 2 1
1 3 3 1
六、代码实现
数据规模与约定:1 <= n <= 34。
a = int(input())
list1 = [[0]*a for i in range(a)]
for i in range(a):
for j in range(a):
if j==0 or j==i:
list1[i][j] = 1
else:
list1[i][j] = list1[i-1][j] + list1[i-1][j-1]
if list1[i][j] != 0:
print(list1[i][j],end=' ')
print()
总结
首先,构造一个二维数组[[0]*a for i in range(a)]
。其次,通过for循环构造a个列表,这a个列表的形式:第一个列表有1个元素、第二个列表有2个元素、…第n个列表有n个元素。最后,将这a个列表作为列表1的元素,组合形成了一个二维数组。
杨辉三角:两个腰边的数都是 1,其它位置的数都是上顶上两个数之和