杨辉三角(vector)

简介: 题目:输入一个数字n,实现输出n行对应的杨辉三角数;

题目:

输入一个数字n,实现输出n行对应的杨辉三角数;

分析:

这道题不难,就是找出其中的规律:

1.我们用到vector<>,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。我们把整体看成一个动态数组,再把每一行看成一个动态数组,所以采用vector<vector<int> >,嵌套一下。
2.每一行的其实和结尾都是一,可以直接定下来;
3.前两行直接就是第2步直接能写下来,到接下来的几行,都是上方左右累加所得。

源码:

include <bits/stdc++.h>

using namespace std;

int main(void)

{

vector<vector<int> > res;
int n;
cin>>n;
for(int i=0;i<n;i++)
{
vector<int> row(i+1);
    row[0]=1;                               //每行的开头为1
for(int j=1;j<i;j++)                     //这一步很巧妙,前两行根本不受影响,我在第一次看的时候,迷了半天(xs)。
    {
        row[j]=res[i-1][j-1]+res[i-1][j];//由于每增加一行,元素就多增加一个,正好错位,
    }
    row[i]=1;                              //每行的结束也为1
    res.push_back(row);
}
for(int i=0;i<n;i++)
{
for(int j=0;j<res[i].size();j++)
    {
cout<<res[i][j]<<" ";
    }
cout<<"\n";
}
return 0;

}

目录
相关文章
|
1月前
|
存储 算法 C++
c++ vector数组详细介绍(二)
c++ vector数组详细介绍(二)
160 0
|
1月前
|
C++
杨辉三角(C++)
杨辉三角(C++)
34 1
|
1月前
|
存储 算法 C++
c++ vector数组详细介绍(三)
c++ vector数组详细介绍(三)
61 0
|
1月前
|
存储 安全 算法
c++ vector数组详细介绍(一)
c++ vector数组详细介绍(一)
156 0
|
1月前
vector——OJ题
vector——OJ题
39 0
vector——OJ题
|
1月前
|
C++ 索引
杨辉三角 II(C++)
杨辉三角 II(C++)
16 0
|
算法 搜索推荐 C++
以vector动态数组为例来详解快速排序算法
以vector动态数组为例来详解快速排序算法
125 0
|
C语言 C++
【C++】vector OJ练习(一)
【C++】vector OJ练习
73 0
|
C++
【C++】vector OJ练习(二)
【C++】vector OJ练习(二)
49 0