编辑代码

#include<iostream>
#include<vector>
#include<iomanip>
using namespace std;
const int n = 10;
int main()
{
	vector<vector<int> >result(n);
	for (int i = 0; i < n; i++)
	{
		result[i].resize(i+1);//所构造的二维数组的每一行都是不一样的长度,根据杨辉三角形的每一行不同列数来构造
	}
	for (int i = 0; i < result.size(); i++)
	{
		for (int j = 0; j <=i; j++)
		{
			if (j == 0 || j == i)//如果是最左别或者最右边的元素就等于1
			{
				result[i][j] = 1;
			}
			else//如果是中间元素就等于上一行的左边一个元素+对应上一行元素
			{
				result[i][j] = result[i - 1][j - 1] + result[i - 1][j];
			}
		}
	}
	for (int i = 0; i < result.size(); i++)//注意这里的i的条件是vector的大小
	{
		cout << setw(n - i+1);//输出域宽,n代表行数,i代表每一行
		for (int j = 0; j < i+1; j++)
		{
			cout << result[i][j] << " ";
		}
		cout << endl;
	}
	return 0;
}