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

}

目录
相关文章
|
2月前
|
人工智能
数组逆序输出
数组逆序输出。
41 12
|
3月前
|
C语言 Python 容器
将一个数组逆序输出。
将一个数组逆序输出。
36 4
字符串逆序(递归实现)
字符串逆序(递归实现)
122 0
|
7月前
|
搜索推荐 C++
[C++/PTA] 有序数组(类模板)
[C++/PTA] 有序数组(类模板)
60 0
|
算法 搜索推荐 C++
以vector动态数组为例来详解快速排序算法
以vector动态数组为例来详解快速排序算法
164 0
|
数据处理
整数数组中最大子数组的和(2)—— 处理二维数组
将二维转化为一维处理,当子矩阵的上下行确定时,把上下行中每一列的数据当作一个单元,确定左右列的过程就是求以列为单元的一维数组的子数组最大和的过程,这种方法大大提高了效率
96 0
整数数组中最大子数组的和(2)—— 处理二维数组
LeetCode1290 二进制链表转整数C++解法(vector实现)
给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。 请你返回该链表所表示数字的 十进制值 。 示例1:
110 0
LeetCode1290 二进制链表转整数C++解法(vector实现)
数组——59. 螺旋矩阵 II
本专栏按照数组—链表—哈希—字符串—栈与队列—二叉树—回溯—贪心—动态规划—单调栈的顺序刷题,采用代码随想录所给的刷题顺序,一个正确的刷题顺序对算法学习是非常重要的,希望对大家有帮助
数组——59. 螺旋矩阵 II
AcWing 814. 复制数组
AcWing 814. 复制数组
67 0
AcWing 814. 复制数组
|
C++
旋转数组STL(reverse)
题目: 给定一个数组,将数组向右移动k步,其中k为非负数。 样例:
84 0

热门文章

最新文章