ProDeveloperTutorial.com

教程和编程解决方案
菜单
  • Shell脚本
  • 系统设计
  • Linux系统编程
  • 4g LTE
  • 编码问题
  • C
  • C ++
  • DSA
  • GIT

给定正整数,生成Pascal三角形,C ++解决方案

前开发者教程 十月18,2018

给定一个非负整数numRows,生成Pascal的第一个numRows’s triangle.

Example:

Input: 5
Output:
[
     [1],
    [1,1],
   [1,2,1],
  [1,3,3,1],
 [1,4,6,4,1]
]

解决方案分析:
在每一行中,第一个和最后一个元素为1。另一个元素是上一行中两个元素的总和。例如

1 3 3 1上一行
1 1 + 3 3 + 3 3 + 1 1下一行

1 4 6 4 1前一行
1 1 + 4 4 + 6 6 + 4 4 + 1 1下一行

 

因此,可以如下面的代码所示直接解决此问题:

C ++解决方案

#include<iostream>
#include<string>
#include<vector>

using namespace std;


vector<vector<int>> generate(int numRows) 
{
	vector<vector<int>> result;
	for(auto i=0;i<numRows;++i)
	{
   		result.push_back(vector<int>(i+1,1));
 		for(auto j=1; j<i; ++j) 
 		{
 			result[i][j] = result[i-1][j-1] + result[i-1][j];
 		}
  	}
  	return result;
}

int main()
{
	int numRows = 4;

	vector<vector<int> > result = generate (numRows);

	for (int i = 0; i < result.size(); i++)
    {
    	for (int j = 0; j < result[i].size(); j++)
    	{
    		cout<< result[i][j]<<" ";
    	}
    	cout<<endl;
    }
}

输出:

1
1 1
1 2 1
1 3 3 1

 

该网站上可用的教程列表:

C编程20+章C ++编程80+章
100多个编码问题数据结构和算法85+章
系统设计20+章Shell脚本编写12章
4g LTE 60+章节最常见的编码问题
5G NR 50+章Linux系统编程20+章
分享
电子邮件
鸣叫
领英
Reddit
绊倒
Pinterest的
上一篇文章
下一篇

关于作者

前开发者教程

每天我们都会讨论竞争性编程问题,请加入我们的网站:   电报频道

ProDeveloperTutorial.com

教程和编程解决方案
版权© 2020 ProDeveloperTutorial.com
从以下课程获得热门课程: 教育性的

  • <aside class="Ob8RKPF"><aside class="Kz0703U"><ol class="QuxWvwQ"></ol></aside></aside>

    <figure id="RBCPQKy"></figure>


  • <bdi class="ZbuN58s"></bdi>
  • <sup id="GbDDQ4n"></sup>

    <dir id="Z8fEyDL"></dir>
    <a id="rQgiPil" class="rYWVrQ3"></a>




    <cite id="Gm93xKw"><ul id="V3LJWvq" class="VZnsXaM"><details id="Xl9eMOv"></details></ul></cite>