题目描述:
杨辉三角形也叫贾宪三角形,西方叫帕斯卡三角形,其实就是各阶二项式系数排列起来构成的三角形,如下。每行的数字实际上是(a + b) n 展开后的各项系数。如下图为杨辉三角的前5行。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
历史上发现这个三角形的人很多,这里介绍几个主要的,北宋人贾宪约1050年首先使用“贾宪三角”进行高次开方运算。杨辉,字谦光,南宋时期杭州人。在他1261年所著的《详解九章算法》一书中,辑录了如上所示的三角形数表,称之为“开方作法本源”图。欧洲直到1623年以后,法国数学家帕斯卡在13岁时发现了“帕斯卡三角”。
现在,请你编程输出杨辉三角形的前N行。
输入格式:
输入只有一行,为一个不大于20的正整数N。
输出格式:
输出杨辉三角形的前N行。每一行相邻两个整数之间只有一个空格。
样例输入:
5
样例输出:
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1
时间限制: 1000ms
空间限制: 256MB
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
int a[21][21];
cin>>n;
for(int i=0;i<n;i++){
for(int j=0;j<i+1;j++){
if(j==0||i==j){
a[i][j]=1;
}else{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
cout<<a[i][j]<<" ";
}cout<<endl;
}
return 0;
}