杨辉三角的练习

1.杨辉三角

杨辉三角可看成一个K行*N列的矩阵 ,即可用二维数组来存储整个元素 。它存在如下规律:

  • 第K层有K个元素;
  • 每层的第一个元素和最后一个元素值为1;
  • 当K>2时,其余的元素等于它上一层两相邻元素之和即A[K][N]= A[K-1][N-1]+A[K-1][N]。

2. C++中vector的用法

vector是一个能够存放任意类型的动态数组,vector作为函数的参数或者返回值时,需要注意它的写法

http://www.cplusplus.com/reference/vector/vector/ 点击打开链接 

https://blog.csdn.net/duan19920101/article/details/50617190/ 点击打开链接

参考上述链接。

3.练习

#include<iostream>
#include<vector>
using std::vector;
using namespace std;

//杨辉三角--看成一个K行*N列的矩阵 ,即用二维数组来存储整个元素 
int main(){
	
	class Solution {
	public:
	  vector < vector<int> > pasTrig(int k){ //返回一个int型二维数组 
	  	vector < vector<int> > vec; //定义一个二维数组
	  	vec.resize(k);//二维数组的行数 
	  	
		  for(int row=0; row<k; row++) {
		  	vec[row].resize(row+1);   //每行元素个数随行数row动态增长--规律1 
		  	vec[row][0]=1;   //规律2 
		  	vec[row][vec[row].size()-1]=1; //规律2
		  	for(int column=1; column<vec[row].size()-1;column++){
		  		vec[row][column] = vec[row-1][column-1]+vec[row-1][column]; //规律3 
			  }
		  }
		   
		   return vec;
	  	
	  }
   }; 
   
   	int numRow =5;
	Solution sig1;
	vector < vector<int> > vec1= sig1.pasTrig(numRow);
	
	
	//打印输出
	for( int i=0;i<numRow;i++ ){
		for(int j=0;j<=i;j++){
			cout << vec1[i][j] <<" " ;	
		} 
		cout <<endl ; 
	}
	return vec1.size();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值