【python】楊輝三角定義は以下の通りである:各行をリストと見なし、generatorを書いて、次の行のリスト(廖雪峰)を出力し続ける

1151 ワード

練習する
楊輝三角の定義は以下の通りである.
          1
         / \
        1   1
       / \ / \
      1   2   1
     / \ / \ / \
    1   3   3   1
   / \ / \ / \ / \
  1   4   6   4   1
 / \ / \ / \ / \ / \
1   5   10  10  5   1

各行をリストと見なし、generatorを書いて、次の行のリストを出力し続けます.
# -*- coding: utf-8 -*-
def triangles(max):
    n = 0
    L = [1] 
    while n < max:    #     
        yield L
        L = [L[i] + L[i + 1 ] for i in range(len(L) - 1 ) ]
        L.insert(0, 1)
        L.append(1) 
        n = n + 1
        print(L)

廖雪峰のウェブサイトにはojシステムがあり、楊輝三角を自主的に書いて印刷すれば、そうであるべきだ.
def Traingle(x):
    Traingle_list = []
    if x == 1:
        Traingle_list = [1]
    elif x == 2:
        Traingle_list = [1,1]
    else:
        Traingle_list_temp = Traingle(x-1)
        Traingle_list = [1,1]
        temp = 1
        while temp < x-1:
            Traingle_list.insert(temp,Traingle_list_temp[temp]+Traingle_list_temp[temp-1])
            temp = temp + 1
    return Traingle_list

def PrintTraingle(x):
    i = 0
    while i < x:
        print(Traingle(i+1))
        i = i + 1