c语言输出杨辉三角
楊輝三角,是在二項(xiàng)式系數(shù)三角形中的一種幾何排列,中國南宋數(shù)學(xué)家楊輝1261年所著的《詳解九章算法》一書中出現(xiàn)。在歐洲,帕斯卡(1623----1662)在1654年發(fā)現(xiàn)這一規(guī)律,所以這個(gè)表又叫做帕斯卡三角形。帕斯卡的發(fā)現(xiàn)比楊輝要遲393年,比賈憲遲600年。
楊輝三角的每一位數(shù)都是上面兩位數(shù)的和,如圖:
?
?用C語言可以對(duì)楊輝三角進(jìn)行輸出。程序如下:
方法一:用兩個(gè)一維數(shù)組來計(jì)算楊輝三角并輸出
void copy(const int* arr_2, int* arr_1) {assert(arr_1);assert(arr_2);int i_2 = 0;while (*(arr_2 + i_2)){*(arr_1 + i_2) = *(arr_2 + i_2);i_2++;} } void print(int* arr_2) {int i_1 = 0;while (*(arr_2 + i_1)){printf("%d ", *(arr_2 + i_1));i_1++;}printf("\n"); } int main() {int arr1[10] = { 1 };int arr2[10] = { 1 };int n = 0;int i = 0;int j = 0;scanf("%d", &n);//輸入楊輝三角的行數(shù)printf("\n");printf("%d\n", arr1[0]);//行數(shù)for (j = 2; j < n+1; j++){//每行數(shù)for (i = 1; i < j; i++){arr2[i] = arr1[i] + arr1[i - 1];}print(arr2, i);//打印楊輝三角的一行copy(arr2, arr1);//復(fù)制函數(shù)}return 0; }方法二:用一個(gè)二維數(shù)組計(jì)算并輸出楊輝三角
int main() {int arr[10][10] = { 0 };int i = 0;int j = 0;int n = 0;scanf("%d", &n);//輸入楊輝三角的行數(shù)printf("\n");//計(jì)算楊輝三角的數(shù),放入二維數(shù)組中,只用到下三角for (i = 0; i < n; i++)//行數(shù){for (j = 0; j <= i; j++){if (j == 0){arr[i][j] = 1;}if (i == j){arr[i][j] = 1;}if ((j < i) && (j != 0)){arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];}}}//輸出二維數(shù)組,即楊輝三角for (i = 0; i < n; i++){for (j = 0; j <= i; j++){printf("%d ", arr[i][j]);}printf("\n");}return 0; }兩種方法輸出的楊輝三角結(jié)果都一樣,如下圖:
?
要想輸出為金字塔形狀的,只需在輸出每一行之前輸出相應(yīng)的空格數(shù)。?
總結(jié)
- 上一篇: 常见端口入侵方法剖析
- 下一篇: .netframework3.5中Tim