Python实现杨辉三角--(yield(),zip())

 1 def _yanghui_tangle(n,result):
 2     if n == 1:
 3         return [1] 4     else:
 5         return [sum(i) for i in zip([0] + result,result + [0])]
 6 #result为上一行的
 7 #我们在列表2端各补了一个0,然后计算相邻项的和,就可以直接得到结果。
 8 def yanghui_trangle(n):
 9     pre_result = []
10     for i in range(n):
11         pre_result = _yanghui_tangle(i + 1,pre_result)
12         print pre_result
13 
14 yanghui_trangle(5)

计算第N层的杨辉三角,必须知道N-1层的数字,然后将相邻2项的数字相加,就能得到下一层除了最边上2个1的所有数字。 听起来有点像递归的思想。

posted @ 2016-03-16 13:52  飞扬美玉  阅读(416)  评论(0编辑  收藏  举报