0
点赞
收藏
分享

微信扫一扫

《力扣刷题》数据结构(杨辉三角)

题目描述

若存在一个非负整数 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;
} 
举报

相关推荐

0 条评论