C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でパスカルの三角形を生成するプログラムの書き方

パスカルの三角形とは、数値が三角形の形に並んだもので、三角形の両端は必ず「1」となり、内部の数値はその真上にある2つの数値の合計になります。この三角形は二項係数(組み合わせの数)を視覚的に表したものとしても知られています。

ここでは、C#を使ってパスカルの三角形を作成するプログラムを紹介します。

サンプルプログラム

using System;
namespace PascalTriangleDemo {
    class Example {
        public static void Main() {
            int rows = 5, val = 1, blank, i, j;
            Console.WriteLine("Pascal's triangle");
            for(i = 0; i<rows; i++) {
                for(blank = 1; blank <= rows-i; blank++)
                Console.Write(" ");
                for(j = 0; j <= i; j++) {
                    if (j == 0||i == 0)
                    val = 1;
                    else
                    val = val*(i-j+1)/j;
                    Console.Write(val + " ");
                }
                Console.WriteLine();
            }
        }
    }
}

実行結果

上記プログラムを実行すると、次のような出力が得られます。

Pascal's triangle
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1

プログラムの解説

このプログラムでは、パスカルの三角形を入れ子(ネスト)になったforループを使って生成しています。

  • 外側のforループ: 三角形の各行に必要な空白(インデント)を出力し、行の位置を整えます。
  • 内側のforループ: 各行に出力する数値を計算して表示します。

該当するコード部分は以下の通りです。

for(i = 0; i<rows; i++) {
    for(blank = 1; blank <= rows-i; blank++)
    Console.Write(" ");
    for(j = 0; j <= i; j++) {
        if (j == 0||i == 0)
        val = 1;
        else
        val = val*(i-j+1)/j;
        Console.Write(val + " ");
    }
    Console.WriteLine();
}

数値の計算ロジック

各数値は、前の値をもとに val = val * (i - j + 1) / j という式で求められます。これは二項係数の漸化式を利用した効率的な計算方法です。行の先頭(j == 0)や最初の行(i == 0)では値は必ず「1」になるため、条件分岐で直接代入しています。

このように、パスカルの三角形は単純なループ処理だけで美しい数列のパターンを出力できる、プログラミング学習に最適な題材です。

  1. C++で三角形の重心を求めるプログラムの作成方法

    この記事では、三角形の3つの頂点の座標を格納した2次元配列が与えられたときに、その三角形の重心を求めるC++プログラムの作成方法を解説します。 三角形の重心とは、三角形の3本の中線がすべて交わる点のことです。 また、三角形の中線とは、ある頂点と、その対辺(向かい合う辺)の中点を結ぶ線分のことを指します。 それでは、具体的な例を使って問題を確認してみましょう。 入力 (-3, 1), (1.5, 0), (-3, -4) 出力 (-1.5, -1) 説明 重心 (x, y) = ((-3 + 1.5 - 3) / 3, (1 + 0 - 4) / 3) = (-1.5, -1) 解法のアプロ

  2. Pythonでパスカルの三角形のn番目の行を求める方法を解説

    パスカルの三角形とはある数 n が与えられたとき、パスカルの三角形の n 番目(0始まり)の行を求めることを考えます。パスカルの三角形は、次のようなルールで作成できます。最上行は「1」のみで構成される2行目以降は、左上の数と右上の数を足し合わせた値が並ぶ具体的には、以下のような形になります。例えば入力が 4 の場合、出力は [1, 4, 6, 4, 1] となります。解法のアプローチこの問題は、以下の手順で解くことができます。n が 0 の場合 → [1] を返すn が 1 の場合 → [1, 1] を返すls を [1, 1]、temp を [1, 1] として初期化するi を 2 から n