杨辉三角(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;

}

目录
相关文章
|
5月前
|
存储 算法 C++
c++ vector数组详细介绍(二)
c++ vector数组详细介绍(二)
197 0
|
5月前
|
存储 安全 算法
c++ vector数组详细介绍(一)
c++ vector数组详细介绍(一)
222 0
|
5月前
|
存储 算法 C++
c++ vector数组详细介绍(三)
c++ vector数组详细介绍(三)
84 0
|
5月前
vector——OJ题
vector——OJ题
53 0
vector——OJ题
|
算法 搜索推荐 C++
以vector动态数组为例来详解快速排序算法
以vector动态数组为例来详解快速排序算法
146 0
|
C++
【C++】vector OJ练习(二)
【C++】vector OJ练习(二)
68 0
|
C语言 C++
【C++】vector OJ练习(一)
【C++】vector OJ练习
87 0
LeetCode1290 二进制链表转整数C++解法(vector实现)
给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。 请你返回该链表所表示数字的 十进制值 。 示例1:
102 0
LeetCode1290 二进制链表转整数C++解法(vector实现)
|
C++
旋转数组STL(reverse)
题目: 给定一个数组,将数组向右移动k步,其中k为非负数。 样例:
78 0