#P14006. 杨辉三角形

杨辉三角形

题目背景

杨辉三角,是二项式系数在三角形中的一种几何排列。在欧洲,这个表叫做帕斯卡三角形。帕斯卡(162316621623—1662)是在16541654年发现这一规律的,比杨辉要迟393393年,比贾宪迟600600年。杨辉三角是中国古代数学的杰出研究成果之一,它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的优美结合。

image

题目描述

设计一个 C++\verb|C++| 函数,函数名为 foo\verb|foo|,参数为 int n\verb|int n|,返回值类型是 vector<vector<long long> >\verb|vector<vector<long long> >|,函数返回的是杨辉三角形前 n\verb|n| 行的结果(保存在二维 vector\verb|vector| 中)。

输入格式

11 个正整数 nn

输出格式

nn 行,就是杨辉三角形前 nn 行的结果,整数间用一个空格隔开。

输入输出样例

5
1 
1 1 
1 2 1 
1 3 3 1 
1 4 6 4 1 

说明/提示

👀️ 本题需要你设计一个 C++\verb|C++| 函数来解决问题,提交代码模板如下:

#include<vector>
using namespace std;
//函数参数n与题目描述一致,返回值是题目要求的结果(函数头必须和模板一致)
vector<vector<long long> > foo(int n) {
    //在函数中实现题目要求的效果
	vector<vector<long long> > ans;
    //生成杨辉三角形的前n行存储在vector<vector<long long> >变量ans中,作为函数的返回值

	return ans;
}

定义了这个函数,在主函数中调用它就能解决问题,参考代码如下:

//----------------------------------------------------------------------------
//!!!本题要提交的代码从这里开始!!!

#include<vector>
using namespace std;
//函数参数n与题目描述一致,返回值是题目要求的结果(函数头必须和模板一致)
vector<vector<long long> > foo(int n) {
    //在函数中实现题目要求的效果
	vector<vector<long long> > ans;
    //生成杨辉三角形的前n行存储在vector<vector<long long> >变量ans中,作为函数的返回值

	return ans;
}

//!!!本题要提交的代码到这里结束!!!
//----------------------------------------------------------------------------
#include<iostream>
int main(){
    int n;
    cin>>n;
    vector<vector<long long> > ans = foo(n);
	for(size_t i=0;i<ans.size();i++){
		for(size_t j=0;j<ans[i].size();j++){
			cout<<ans[i][j]<<" ";
		}
		cout<<endl;
	}
    return 0;
}

需要特别注意的是,本题提交的代码是定义函数的部分,不能提交完整的程序哦!


👀️ 对于100%100\%的数据,1n901 \leq n \leq 90