问题 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;
}
|