杨辉三角形,又称帕斯卡三角形(Pascal's Triangle),是一种在数学中具有重要意义的三角形数阵。它由一系列数字组成,每个数字都是它正上方两个数字之和。这个三角形的特点是:
杨辉三角形的前几行如下所示:
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
代码实现:
#include <stdio.h>
#define MAX 10 // 定义杨辉三角形的最大行数
int main() {
int arr[MAX][MAX] = {0}; // 用于存放杨辉三角形的数组
int rows = MAX; // 杨辉三角形的行数
// 初始化第一行和第一列
for (int i = 0; i < rows; i++) {
arr[i][0] = 1;
arr[i][i] = 1;
}
// 计算杨辉三角形的值
for (int i = 2; i < rows; i++) {
for (int j = 1; j < i; j++) {
arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
}
}
// 输出杨辉三角形
for (int i = 0; i < rows; i++) {
// 打印空格以使三角形居中
for (int k = 0; k < rows - i - 1; k++) {
printf(" ");
}
// 打印每一行的值
for (int j = 0; j <= i; j++) {
printf("%4d", arr[i][j]);
}
printf("\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
1 9 36 84 126 126 84 36 9 1