问题 V: C语言实习题四——7.输出杨辉三角形
时间限制: 1 Sec 内存限制: 128 MB
题目描述
打印如下形式的杨辉三角形。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
输入
杨辉三角形阶数
输出
杨辉三角形。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
样例输入
6
样例输出
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1
提示
① 杨辉三角形的特点:第一列和对角线上的元素值均为1,即a[i][0]=a[i][i]=1;其余位置元素的值=上一行本列元素值+上一行前一列元素值,如第三行第二列2就是第二行第一列+第二行第二列,计算公式为a[i][j]=a[i-1][j-1]+ a[i-1][j]。
② 应先对第一列和对角线元素赋值,然后再为其它元素赋值。
代码实现
#include <stdio.h>
int main() {
int n = 0;
scanf("%d", &n);
int a[100][100] = { 0 };
for (int i = 0; i < n; i++) {
a[i][0] = 1;
a[i][i] = 1;
}
for (int i = 1; i < n; i++) {
for (int j = 1; j < n; j++) {
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
printf("%d ", a[i][j]);
}
printf("\n");
}
return 0;
}