#include <stdio.h>
#include <stdlib.h>
int **pascal_dp(int n) {
int col, row;
int **data = (int **)malloc(sizeof(int *) * (n + 1));
for (col = 0; col <= n; col++) {
data[col] = (int *)malloc(sizeof(int) * (col + 1));
data[col][0] = 1;
for (row = 1; row <= col; row++) {
data[col][row] = data[col - 1][row - 1] + data[col - 1][row];
}
data[col][col] = 1;
}
return data;
}
void print_pascal_reverse(int **data, int n) {
int i, j;
for (i = n; i >= 0; i--) {
for (j = 0; j < i; j++) { // j < i to prevent printing the last 1
printf("%d ", data[i][j]);
}
printf("\n");
}
}
int main() {
int n;
scanf("%d", &n);
int **result = pascal_dp(n + 1);
print_pascal_reverse(result, n + 1);
// 用完後要free掉記憶體,避免memory leak
for (int i = 0; i < n; i++) {
free(result[i]);
}
free(result);
return 0;
}
To embed this project on your website, copy the following code and paste it into your website's HTML: