#include <stdio.h>

// 递归函数：计算杨辉三角中第row行第col列的值
int binomialCoefficient(int row, int col) {
    // 基线条件：当col为0或col等于row时，返回1
    if (col == 0 || col == row) {
        return 1;
    }
    // 递归条件：计算上一行中两个数的和
    return binomialCoefficient(row - 1, col - 1) + binomialCoefficient(row - 1, col);
}

// 函数：打印杨辉三角的前n行
void printPascalTriangle(int n) {
    for (int i = 0; i < n; i++) {
        // 打印前导空格，使杨辉三角居中显示
        for (int j = 0; j < n - i - 1; j++) {
            printf(" ");
        }
        
        // 打印当前行的数值
        for (int j = 0; j <= i; j++) {
            printf("%d ", binomialCoefficient(i, j));
        }
        
        printf("\n");
    }
}

int main() {
    int n = 10;  // 打印前10行
    
    printf("杨辉三角的前%d行:\n", n);
    printPascalTriangle(n);
    
    return 0;
}