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的所有数字。 听起来有点像递归的思想。