题目描述:
给出 n(n≤20),输出杨辉三角的前 n 行。
思路:
首先要能够想到的是二维数组,然后可以联系到杨辉三角的特性,首先是每一行的第一个和最后一个为1,并且下一行中间的数字为上一行两个的和,有了这两个知识点,就可以开始做题了;
首先先定义一个数组,由题可知n小于等于20,那么就定义一个21的数组
int a[21][21];
int n;
cin >> n;
for(int i = 1; i <=n;i++)
{
a[i][1] = 1;//每行第一个为1
a[i][i] = 1;//每行最后一个为1
}
//需要注意的是,上面这个循环其实已经实现了第一行和第二行以及第三行的第一个和第三个,
//就差第三行第二个,所以下面的循环从第三行开始
for(int i =1;i<=n;i++)
{
for(int j = 2;j < i;j++)
{
a[i][j] = a[i-1][j] + a[i-1][j-1];
}
}
//因为是二维数组,所以用双层循环打印,并且外层循环要带换行
for(int i = 1;i<=n;i++)
{
for(int j =1;j <= i;j++)
{
cout << a[i][j] << " ";
}
cout << endl;
}