杨辉三角形
杨辉三角形怎么解?
话不多说,先上代码.
#include <iostream>
using namespace std;
#define N 10
int main()
{
int i, j,a[N][N];
for (i = 0; i < N; i++)
{
//安排左右两侧值为1.
a[i][0] = 1;
a[i][i] = 1;
}
for (i = 1; i < N; i++)
{
for (j = 1; j < i; j++)
{
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];//赋值,将上一行顶头两个值赋到这里.
}
}
for (i = 0; i < N; i++)
{
for (j = 0; j <= i; j++)
{
printf("%-5d", a[i][j]);//输出,每个字符之间隔开5个空格.
}
cout << endl;换行
}
return 0;
}
我们先看一下第一个循环赋值.
for (i = 0; i < N; i++)
{
//安排左右两侧值为1.
a[i][0] = 1;
a[i][i] = 1;
}
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | |||||||||
1 | 1 | 1 | ||||||||
2 | 1 | 1 | ||||||||
3 | 1 | 1 | ||||||||
4 | 1 | 1 | ||||||||
5 | 1 | 1 | ||||||||
6 | 1 | 1 | ||||||||
7 | 1 | 1 | ||||||||
8 | 1 | 1 | ||||||||
9 | 1 | 1 |
我们再看一下第二个循环赋值.
for (i = 1; i < N; i++)
{
for (j = 1; j < i; j++)
{
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];//赋值,将上一行顶头两个值赋到这里.
}
}
2 | ||||||||||
3 | 3 | |||||||||
4 | 6 | 4 | ||||||||
5 | 10 | 10 | 5 | |||||||
6 | 15 | 20 | 15 | 6 | ||||||
7 | 21 | 35 | 35 | 21 | 7 | |||||
8 | 28 | 56 | 70 | 56 | 28 | 8 | ||||
9 | 36 | 84 | 126 | 126 | 84 | 36 | 9 | |||
10 | 45 | 120 | 210 | 252 | 210 | 120 | 45 | 10 |
最后输出
for (i = 0; i < N; i++)
{
for (j = 0; j <= i; j++)
{
printf("%-5d", a[i][j]);//输出,每个字符之间隔开5个空格.
}
cout << endl;换行
}