パスカルの3角形
C++/Linuxプログラミング例
2項係数の漸化式
をピラミッド型に表したパスカルの3角形を描くプログラムを以下のように作成した。
==============================================
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
const int max_n = 10;
double ** C = new double*[max_n+1];
for (int i = 0; i <= max_n; i++){
C[i] = new double[i+1];
for (int j = 0; j <= i; j++)
if ((j == 0) || (j == i)){
C[i][j] = 1;
}else{ // Pascal's rule
C[i][j] = C[i-1][j-1] + C[i-1][j];
}
}
//
// Pascal's triangle
//
cout << endl;
for (int i = 0; i <= max_n; i++){
for (int j = 0; j < max_n-i; j++)
cout << " ";
for (int j = 0; j <= i; j++)
cout << setw(6) << C[i][j];
cout << endl;
}
cout << endl;
for (int i = 0; i <= max_n; i++)
delete [] C[i];
delete [] C;
return 0;
}
==============================================
上のプログラムを実行すると図1のようになる。
図1
上の漸化式が
の関係で出力されている。
プログラムは圧縮ファイルPascalTriangle.zipとして用意した。圧縮ファイル名PascalTriangle.zipをクリックしてダウンロードすることができる。