题目:杨辉三角,众所周知
输出特定层的杨辉三角:
1、大神们的结果
#杨辉三角
def triangles():
a = [1]
while True:
yield a
a = [sum(i) for i in zip([0] + a,a + [0])]
if __name__ == '__main__':
h = int(input('请输入您要显示的最大行数:'))
tri = triangles()
for n in range(h):
print(next(tri))
2、自己惯性思维结果
#杨辉三角
def sma_yanghui(h):
a1=[1]
print(a1)
n=2
while(n<=h and n>1):
a2=[[]]*n
a2[0]=a1[0]
a2[n-1]=a1[n-2]
for j in range(1,n-1):
a2[j]=a1[j-1]+a1[j]
print(a2)
del a1
a1=a2[:]
n=n+1
if __name__ == '__main__':
h = int(input('请输入您要显示的最大行数:'))
sma_yanghui(h)
只能说结果没错,但是明显无论从程序简洁性,还是内存需求上,都完败。
Python博大精深,习惯于C语言的自己动手,一时半会还真不适应。