[Pgs三角形配置]リストを使用して三角形形状を作成するには


プログラマ三角形の配置

Listを使用した形状の作成


次の問題を見て、数字を三角形に並べるべきです.ソリューションセクションの画像のようにlistを使用して、数値を三角形に近づけることができます.

Question



Solution



PSEUDO
  • 0またはFalseで埋め込まれた三角形のリスト
  • を作成します.
  • range(1,n+1)の数字を三角形リストのインデックスに1つずつ埋め込む
    三角形の順に塗りつぶすので、上図の4,3,2をループと呼び、内側三角形の形で行うことができます.
    各エッジの塗りつぶし数は
  • で、変化範囲はrange(n,0,-1)です.
  • for k in range(n,0,-3):3サイクルごと
    for in range(k):変数ごとにk個の数字を追加
    triangle[i][j] = num
    num += 1
    i+=1またはj+=1またはi-=1、j-=1(可変)
  • 三角形リストの内部を貼り付けるリストは
  • を返します.
    def sol(n):
    
        tri = list()
        for i in range(1, n+1):
            tri.append([False]*i)
    
        num = 1
        i, j = 0, 0
        for k in range(n, 0, -3): # 5,2
            if k >= 1:
                for _ in range(k):
                    tri[i][j] = num
                    num += 1
                    i += 1
            i -= 1 # 4, 1
            j += 1
            if k-1 >= 1:
                for _ in range(k-1): # 4
                    tri[i][j] = num
                    num += 1
                    j += 1
            i -= 1
            j -= 2 # 3, 3
            if k-2 >= 1:
                for _ in range(k-2): # 3
                    tri[i][j] = num
                    num += 1
                    i -= 1
                    j -= 1
            i += 2
            j += 1
        
        ans = list()
        for list1 in tri:
            ans += list1
        return ans