本题要求按照规定格式打印前 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
来源:
来源:PTA | 程序设计类实验辅助教学平台
链接:https://pintia.cn/problem-sets/13/exam/problems/517
提交:
题解:
#include <stdio.h>
int main() {
int N;
scanf("%d", &N);
int matrix[10][10] = {0};
// 每一行首尾元素均为 1
for (int i = 0; i < N; i++) {
matrix[i][0] = 1;
matrix[i][i] = 1;
}
// 赋值剩下 N-2 行的中间元素
for (int i = 2; i < N; i++) {
for (int j = 1; j < i; j++) {
// 当前元素等于上一行的两肩上元素之和
matrix[i][j] = matrix[i - 1][j - 1] + matrix[i - 1][j];
}
}
// 按题目格式输出
for (int i = 0; i < N; i++) {
// 先输出每一行的空格
for (int j = N - 1 - i; j > 0; j--) {
printf(" ");
}
// 输出每一行的元素
for (int k = 0; k <= i; k++) {
printf("%4d", matrix[i][k]);
}
printf("\n");
}
return 0;
}