问题 C: 习题6-6 杨辉三角
内存限制:12 MB
时间限制:1.000 S
题目描述
按要求输入如下格式的杨辉三角
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
最多输出10层
输入
输入只包含一个正整数n,表示将要输出的杨辉三角的层数。
输出
对应于该输入,请输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开
样例输入
5
样例输出
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
思路:
每一行第一个和最后一个是1;
从第三行开始,中间的数字等于它上方两个数字之和;
每行数字之间用空格隔开,行末没有多余空格;
C/C++代码:
cpp
#include <stdio.h>
int main(){
int a[10][10] = {0};
int n;
scanf("%d", &n);
for(int i = 0; i < n; i++){
a[i][0] = 1;
a[i][i] = 1;
for(int j = 1; j < i; 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]);
if(j != i){
printf(" ");
}
}
printf("\n");
}
return 0;
}