题干
本题要求按照规定格式打印前N行杨辉三角。
输入格式:
输入在一行中给出N(1≤N≤10)。
输出格式:
以正三角形的格式输出前N行杨辉三角。每个数字占固定4位。
输入样例:
6
输出样例:
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1源代码
#include <stdio.h> #define MAX_N 10 // 计算组合数 int combination(int n, int k) { if (k == 0 || k == n) { return 1; } return combination(n - 1, k - 1) + combination(n - 1, k); } int main() { int N; // 读取输入的 N scanf("%d", &N); // 检查 N 是否在有效范围内 if (N < 1 || N > 10) { printf("输入的 N 必须在 1 到 10 之间。\n"); return 1; } // 循环输出每一行 for (int i = 0; i < N; i++) { // 输出前导空格 for (int j = 0; j < N - i - 1; j++) { printf(" "); } // 输出当前行的数字 for (int k = 0; k <= i; k++) { printf("%4d", combination(i, k)); } // 换行 printf("\n"); } return 0; }