【程式設計-C#】巴斯卡三角形
巴斯卡三角形的演算法:
步驟1:在第1列中間行位置放入1
步驟2:從第2列開始,每個元素的值為其左上角的值與右上角的值相加,若元素在邊界,左或右邊已到邊緣,沒有左上或右上的元素可供相加,此時,我們可以假想這些不存在的元素為0,在左邊界的話,則元素的值等於0+右上角的值,在右邊界的話,則元素的值等於左上角的值+0。
程式的寫法:
陣列的大小為n x (2n-1)
const int nr = 7; //列的數量 const int nc = 2 * nr - 1; //行的數量 int[,] M = new int[nr, nc]; //建立一個 n x 2n-1大小的二維陣列 int row = 0, col = nc / 2; //計算第一列中間位置 M[row, col] = 1; //將1放入第1列中間位置 for (row = 1; row < nr; row++) { for (col = 0; col < nc; col++) { if (col == 0) M[row, col] = M[row - 1, col + 1]; //左邊界 else if (col == nc - 1) M[row, col] = M[row - 1, col - 1]; //右邊界 else M[row, col] = M[row - 1, col - 1] + M[row - 1, col + 1]; } } for (row = 0; row < nr; row++) { for (col = 0; col < nc; col++) { if (M[row, col] != 0) Console.Write("{0, 4}", M[row, col]); else Console.Write(" "); //如果是0的話,就只輸出4個空白,不要輸出0 } Console.WriteLine(); } }