楊輝の三角形は、三角形の二項係数の幾何学的配置であり、1261年に中国の南宋王朝の数学者である楊輝が書いた本「9章アルゴリズムの詳細な説明」に記載されています。ヨーロッパでは、パスカル(1623-1662)が1654年にこの法則を発見したため、この表はパスカルの三角形とも呼ばれます。
楊輝の三角形は数学の古典的な法則です。今日、私たちはプログラミングを使用して楊輝の三角形の印刷を実現しています。
このプログラミングの実現には、楊輝の三角形を使用しますその上の各2つの数の数に等しいです。
注意:最初の桁は固定1で、最初の三角形はこのルールに適合しませんが、プログラミングで簡単に解決できます。
二次元のパターンなので、まだ一定のパターンがありますので、二次元の配列で実現できます。
配列なので、スタートビットとして0。私の目的は、次の図を作成することです。
最初に特別な外側の円1を印刷しましょう(例として10層)。
int arr[10][10] = {
0 };
for (int a = 0; a < 10; a++){
for (int b = 0; b < 10; b++){
arr[a][0] = 1;
arr[a][a] = 1;
}
}
図に示すように:
次に、内部番号を出力します。
for (int a = 2; a < 10; a++){
for (int b = 0; b < a; b++){
arr[a][b] = arr[a - 1][b - 1] + arr[a - 1][b];
}
}
ここで楊輝の三角形が作成され、ループを使用して作成した2次元配列を印刷します。
ソースコードは次のとおりです。
#include<stdio.h>
#include<stdlib.h>
int main(){
int arr[10][10] = {
0 };
for (int a = 0; a < 10; a++){
for (int b = 0; b < 10; b++){
arr[a][0] = 1;
arr[a][a] = 1;
}
}
for (int a = 2; a < 10; a++){
for (int b = 0; b < a; b++){
arr[a][b] = arr[a - 1][b - 1] + arr[a - 1][b];
}
}
for (int a = 0; a < 10; a++){
for (int b = 0; b <= a; b++){
printf("%4d", arr[a][b]);
}
printf("\n");
}
system("pause");
return 0;
}