ヒント_3_9

ヒント:練習問題_3_9(パスカルの三角形)

この問題には正解が沢山あります。以下のヒントはその一例ですので参考程度にして是非ご自身で考えてみて下さい。結果が合っていれば問題ありません。
この問題のキーはn行目からn+1行目をどうやって作るかです。ここではn行目のlistの先頭と末尾の両方に要素0を加えたものから、[0番目+1番目, 1番目+2番目, 2番目+3番目, …]と計算してn+1行目のlistを作成しています。そうすることにより両外側の1も自動的に計算できるためです。ここがポイントなので最初に記載します。後はこれまで通りです。

  1. 最初に n が1以上かつint型であるかを判定します。
  2. 次に戻り値となるlistの初期値[]を設定します。
  3. n行分の要素が必要なので最初に for i in range(n) でfor文を作成します。
  4. i == 0 の時は要素用のlistに初期値[1]を設定します。i == 0 以外は、1番の方針に従ってn+1行目を作成します。listの両側に0を加えたものからn+1行目を作成する際にもfor文を使用します。そのfor文のin後のシーケンスには range(1, len(list))を使用します。
  5. 4番で作成した要素用のlistを戻り値となるlistにappendします。
  6. 1番の判定で、nが自然数ではない場合はメッセージを出力し、Noneを戻します。

解答例はこちら

タイトルとURLをコピーしました