C语言二维数组实例简单的杨辉三角形

C/C++
228
0
0
2022-11-14

杨辉三角形:

杨辉三角形是根据二项式的系数在三角形中的一种几何排列。9行的杨辉三角形图像如下:

img

如何用C语言输出一个简单的杨辉三角形呢?下面我来分享我的思路,仅供大家参考。

核心思路:

看图找规律,不难发现:杨辉三角中的每行首位和末尾数字均为 1 ;行数=列数,如第三行有三列、第五行有五列;从第三行起,每行从第二列数开始的数值,均满足公式:a[i][j] = a[i - 1][j - 1] + a[i - 1][j],其中 i 为列,j为行。

源代码如下:

#include <stdio.h>
#define n 9
int main() {
    int a[n][n];
    putchar('\n');
    for (int i = 0; i < n; i++) {
        a[i][0] = 1;
        a[i][i] = 1;
    }
    for (int i = 2; i < n; i++)
        for (int j = 1; j < i; j++)
            a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
    for (int i = 0; i < n; i++) {
        for (int j = 0; j <= i; j++)
            printf("%-5d", a[i][j]);
        putchar('\n');
    }
    return 0;
}

运行编译上述代码,将会输入以下结果:

1
1    1
1    2    1
1    3    3    1
1    4    6    4    1
1    5    10   10   5    1
1    6    15   20   15   6    1
1    7    21   35   35   21   7    1
1    8    28   56   70   56   28   8    1