#include <stdio.h>
#include <stdlib.h>
int* getPascalTriangleRow(int rowIndex) {
int* row = (int*)malloc((rowIndex + 1) * sizeof(int));
if (row == NULL) {
fprintf(stderr, "Memory allocation failed\n");
exit(1);
}
row[0] = 1;
for (int i = 1; i <= rowIndex; i++) {
row[i] = (long long)row[i - 1] * (rowIndex - i + 1) / i;
}
return row;
}
int main() {
int rowIndex = 4;
int* row = getPascalTriangleRow(rowIndex);
for (int i = 0; i <= rowIndex; i++) {
printf("%d ", row[i]);
}
printf("\n");
free(row);
return 0;
}
/*
run:
1 4 6 4 1
*/