【题目描述】
例5.11 打印杨辉三角形的前n(2≤n≤20)行。杨辉三角形如下图:
当n=5时
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
输出:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
【输入】
输入行数n。
【输出】
输出如题述三角形。n行,每行各数之间用一个空格隔开。
【输入样例】
5
【输出样例】
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
【参考代码】
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
int n;
cin>>n;
int a[20][20]={0};//全部初始化为0;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
a[i][0]=1;//第一列全为1;
if(i==j){
a[i][j]=1;//对角线全为1;
}
if(j!=0&&i!=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<n;j++){
if(a[i][j]!=0){
cout<<a[i][j]<<" ";
}
else
break;//每一行遇到0时,跳出j循环开始下一行;
}
cout<<endl;//每一行换行;
}
return 0;
}