版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/liangxy2014/article/details/79300763
题目:打印出杨辉三角形(要求打印出10行)
以下列出的两种解法涉及了python中两种创建二维数组的方法。
创建二维数组的方法,单独附文介绍。
解法一中涉及二维数组的循环遍历。
解法一:
# encoding:utf-8
N = 10
YHTriangle = []
for i in range(N):
YHTriangle.append([])
# print YHTriangle
if i == 0:
YHTriangle[i].append(1)
else:
# 最左元素永远为1
YHTriangle[i].append(1)
# 最右元素永远为1
YHTriangle[i].append(1)
for j in range(1, i):
#if j <> 0 and j <> i:
YHTriangle[i].insert(j, YHTriangle[i-1][j-1] + YHTriangle[i-1][j])
# 循环数组
for i in range(N):
print YHTriangle[i]
解法二:
n = input('请输入行数:')
lst = [[0] * 10 for i in range(n)]
if n > 0:
for i in range(n):
print
print (n - i) * ' ',
for j in range(i+1):
if j == 0:
lst[i][0] = 1
elif j == i:
lst[i][j] = 1
else:
lst[i][j] = lst[i-1][j-1] + lst[i-1][j]
print lst[i][j],