【输入】
输入行数n。
【输出】
输出如题述三角形。n行,每行各数之间用一个空格隔开。
【输入样例】
5
【输出样例】
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
思路:
1、通过观察我们发现两侧边都是1,我们就可以把他们固定,只考虑中间的某个a[i][j]。
2、举个例子模拟一下,例如说6(a[i][j])这个数是通过3+3也就是(a[i - 1][j] + a[i - 1][j - 1])得到也就是它上一行同一列的数和上一行左侧列那个数相加。
3、按照思路模拟输出结果
#include<iostream>
using namespace std;
const int N = 1e2 + 10;
int a[N][N];
int main()
{
//打印三角基本双层循环必须掌握
int n; cin >> n;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= i; j++)
{
//将所有的1固定,剩下的数全部进行模拟。
if (j == 1 || j == i) a[i][j] = 1;
else 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;
}
return 0;
}