码迷,mamicode.com
首页 > 编程语言 > 详细

Python杨辉三角算法

时间:2016-08-02 18:53:42      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
def triangles():
      n = 1
      aboveList = []
      while True:
          if n == 1:
              aboveList = [1]
              n = n + 1
              yield [1]
          if n == 2:
              aboveList = [1,1]
              n = n + 1
              yield [1,1]
          newList = []
          for x in getMiddleList(aboveList):
              newList.append(x)
          newList.insert(0,1)
          newList.append(1)
          aboveList = newList
          n = n + 1
          yield newList
      return done

def getMiddleList(aboveList):
    newList = []
    leftNodeVal=0 
    n=1
    for x in aboveList:
        if n == 1:
            leftNodeVal = x
        else:
            newList.append(x+leftNodeVal)
            leftNodeVal = x
        n += 1
    return newList

n=0
for t in triangles():
    print(t)
    n = n + 1
    if n == 10:
        break

输出结果:

[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
[1, 5, 10, 10, 5, 1]
[1, 6, 15, 20, 15, 6, 1]
[1, 7, 21, 35, 35, 21, 7, 1]
[1, 8, 28, 56, 70, 56, 28, 8, 1]
[1, 9, 36, 84, 126, 126, 84, 36, 9, 1]

不是最佳的算法,代码比较多,后面继续研究

Python杨辉三角算法

标签:

原文地址:http://www.cnblogs.com/frankyou/p/5730257.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!