题目描述
若存在一个非负整数 numRows
,要求生成「杨辉三角」的前 numRows
行
在「杨辉三角」中,每个数是它左上方和右上方的数的和
C 语言具体代码实现
#include <stdio.h>
#include <stdlib.h>
int **array; // 二维数组
int numRows = 5; // 五行杨辉三角
void generate(){
array[0][0] = 1; // 第一行元素
array[1][0] = 1, array[1][1] = 1; // // 第二行元素
for(int i = 2; i < numRows; i++){
array[i][0] = 1, array[i][i] = 1;
for(int j = 1; j < i; j++){
array[i][j] = array[i-1][j-1] + array[i-1][j];
}
}
}
int main(void){
array = (int**)malloc(numRows*sizeof(int*));
for(int i = 0; i < numRows; i++){
array[i] = (int*)malloc((i+1)*sizeof(int));
}
// 调用函数
generate();
for(int i = 0; i < numRows; i++){
for(int j = 0; j < i+1; j++){
printf("%d ", array[i][j]);
}
printf("\n");
}
return 0;
}