0
点赞
收藏
分享

微信扫一扫

蓝桥杯-杨辉三角

90哦吼 2022-01-06 阅读 54
蓝桥杯c++

一、题目描述

杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。

它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。

下面给出了杨辉三角形的前4行:

1

1 1

1 2 1

1 3 3 1

给出n,输出它的前n行。

二、解决方法

使用二维数组,对每个一维数组的第一个赋值1,其他为0

代码如下(示例):

const int count = 34;
	int n;
	cin >> n;
	int arr[count][count];
	for (int i = 0; i < count; i++)
	{
		for (int j = 0; j < count; j++)
		{
			if (j == 0)
			{
				arr[i][j] = 1;
			}
			else
			{
				arr[i][j] = 0;
			}
		}
	}

实现杨辉三角的主要思路为下一个是上俩个的和,基于这个思路,完善杨辉三角的实现

代码如下(示例):

for (int i = 1; i < count; i++)
	{
		for (int j = 1; j < count; j++)
		{
			
			arr[i][j] = arr[i - 1][j] + arr[i - 1][j -1];
		}
	}

并不需要俩边都赋值为1,j=1可以避免计算已经被赋予1的值,最后格式化输出,数组里的值为0时不需要输出,即可得到杨辉三角。
代码如下(示例):

for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < count; j++)
		{
			if (arr[i][j] != 0)
			{
				cout << arr[i][j] << " ";
			}
			
		}
		cout << endl;
	}

举报

相关推荐

0 条评论