Lanqiaoカップの基本的なエクササイズYangHuiトライアングル(pythonで実装)

タイトル説明

リソース制限
時間制限:1.0秒メモリ制限:256.0MB

問題の説明
ヤン・フイの三角形はパスカルの三角形とも呼ばれ、そのi +1行目は(a + b)iの展開係数です。その重要な特性の1つは、三角形の各数値が2つの肩の数値の合計に等しいことです。
  
ヤンホイの三角形の最初の4行を以下に示します。

   1  
  1 1  
 1 2 1 
1 3 3 1

nを指定して、最初のn行を出力します。

入力形式
入力には数値nが含まれます

出力形式
Yanghui三角形の最初のn行を出力します各行は、スペースで区切られた、この行の最初の番号から順番に出力されます。前に余分なスペースを出力しないでください。

サンプル入力
4

サンプル出力
11
1 1
2 1
1 3 3 1

データスケールと規則
1 <= n <= 34


アイデア:

  1. n * n個の2次元配列numを作成し、最初の試行ですべての要素を0に置き換えることができます
  2. 各行の最初の数字は1で、下の数字は上の左と右の数字の合計に等しくなります。iが行を表し、jが列を表す場合
    nums [i] [j] = nums [i-1] [j-1] + nums [i-1] [j]
  3. まず、ループを介してnums 2次元配列内の要素に値を割り当て、次にループを介して各要素を出力します。要素が0の場合、出力されません。

コード:

n = int(input())

nums = [[0] * n for i in range(n)]

for i in range(n) :
    for j in range(n) :
        if j == 0 :
            nums[i][j] = 1
        else :
            nums[i][j] = nums[i-1][j-1] + nums[i-1][j]
            
for i in range(n) :
    for j in range(n) :
        if nums[i][j] != 0 :
            print(nums[i][j],end=" ")
    print()

評価結果:評価結果

コード分​​析:

  1. リストを含むすべてのオブジェクトをリストに保存できます
my_list = [10,'hello',True,None,[1,2,3]]
print(my_list)
# [10, 'hello', True, None, [1, 2, 3]]
  1. *を使用して、リスト内の要素を指定された回数繰り返します
num1 = [0]*5
print(num1)           # [0, 0, 0, 0, 0]

num2 = [1,2,3] * 3    # [1, 2, 3, 1, 2, 3, 1, 2, 3]
print(num2)

num3 = [[0] * 5]      # [[0, 0, 0, 0, 0]]
print(num3)

num4 = [[0,0,0]] * 3  # [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
print(num4)
  1. 入力nに従って、n * nの「2次元配列」を作成できます(実際には、リストまたはリスト内の要素です)
  • 作成する正しい方法は次のとおりです
n = int(input())
nums = [[0] * n for i in range(n)]
  • たぶん何人かの友人はこのようにそれを作成しようとします
num = [[0,0,0]] * 2
print(num)
# 输出:[[0, 0, 0], [0, 0, 0]]

結果は正しいようですが、プログラムは正しく実行されません。その理由は、この作成方法に問題があるためです。

num[0][0] = 1
print(num)
# 输出:[[1, 0, 0], [1, 0, 0]]

num [0] [0]を変更すると、num [1] [0]も変更されます

上記の作成方法は、

temp = [0] * 2
num = [temp,temp]
  1. リスト内のオブジェクトは挿入順にリストに格納され、リスト内の要素はインデックスによって取得できます。インデックスは0から始まる整数で、リストの最初の位置には0のインデックスが付けられ、2番目の位置のインデックスは1になり、3番目の位置のインデックスは2になります。インデックスが負の場合、要素を後ろから前に取得します。-1は最初から最後を意味し、-2は最後から2番目を意味します。
num = [[1,2,3],[4,5,6],[7,8,9]]
print(num[-1][-1])
# 输出:9

おすすめ

転載: blog.csdn.net/weixin_43974265/article/details/104874509
おすすめ