杨辉三角形

杨辉三角形怎么解?

话不多说,先上代码.

#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;换行
	}
posted @ 2019-03-20 13:03  对CSDN使用炎拳吧  阅读(126)  评论(0编辑  收藏  举报