[C++]杨辉三角

目录

题目

解题思路

代码实现

获取数字

打印函数

主函数

全部代码

运行结果


题目

给定一个非负整数numRows ,生成「杨辉三角」的前numRows行。
在「杨辉三角」中,每个数是它左上方和右上方的数的和。

解题思路

第k列的第i个数字的值第k-1列的(i-1)和i的和

由于数组是动态变化的没有固定大小

运用到容器(vector)

u1s1!

python会比c好打

代码实现

获取数字

获取数并且把它存储到容器中

void GetResult(int a)
{vector <vector<int>> sums;int b[1] = { 1 };int c[2] = { 1,1 };int d[3] = { 1,2,1 };vector <int> a_1(b,b+1);vector <int> a_2(c,c+2);vector <int> a_3(d,d+3);sums.push_back(a_1);sums.push_back(a_2);sums.push_back(a_3);for (int i = 3; i <= a - 1; i++){vector <int> sum ;for (int j = 0; j <= i; j++){if (j == 0 or j==i){sum.push_back(1);continue;}int sum_1 = 0;sum_1 = sums[i - 1][j-1] + sums[i - 1][j];sum.push_back(sum_1);}sums.push_back(sum);}printResult(sums);
}

这里是容器里面又装载了一个容器

实现创建一个可以动态变化大小的二维数组

第k列的第i个数字的值第k-1列的(i-1)和i的和

所以可以利用上一行的结果来计算数字

并且第1,2,3行要单独考虑

打印函数

不得不说要按要求打印还要自己写一个函数

因为c++不可以直接打印整个数组

所以要新建一个函数

void printResult(vector <vector<int>> sums)
{cout << "[";for(int i=0;i<=sums.size()-1;i++){if (i != 0)cout << ",";cout << "[";for (int j = 0; j <= sums[i].size()-1; j++){if (i != 0)cout << ",";cout << sums[i][j] ;}cout << "]";}cout << "]";
}

主函数

主函数为

int main()
{int a;cin >> a;if (a == 1)cout << "[1]" << endl;else if (a == 2)cout << "[[1],[1,1]]" << endl;else if (a == 3)cout << "[[1],[1,1][1,2,1]]" << endl;else if (a <= 0)exit(0);elseGetResult(a);
}

全部代码

#include <iostream>
#include <vector>
using namespace std;
void printResult(vector <vector<int>> sums)
{cout << "[";for(int i=0;i<=sums.size()-1;i++){if (i != 0)cout << ",";cout << "[";for (int j = 0; j <= sums[i].size()-1; j++){if (i != 0)cout << ",";cout << sums[i][j] ;}cout << "]";}cout << "]";
}
void GetResult(int a)
{vector <vector<int>> sums;int b[1] = { 1 };int c[2] = { 1,1 };int d[3] = { 1,2,1 };vector <int> a_1(b,b+1);vector <int> a_2(c,c+2);vector <int> a_3(d,d+3);sums.push_back(a_1);sums.push_back(a_2);sums.push_back(a_3);for (int i = 3; i <= a - 1; i++){vector <int> sum ;for (int j = 0; j <= i; j++){if (j == 0 or j==i){sum.push_back(1);continue;}int sum_1 = 0;sum_1 = sums[i - 1][j-1] + sums[i - 1][j];sum.push_back(sum_1);}sums.push_back(sum);}printResult(sums);
}
int main()
{int a;cin >> a;if (a == 1)cout << "[1]" << endl;else if (a == 2)cout << "[[1],[1,1]]" << endl;else if (a == 3)cout << "[[1],[1,1][1,2,1]]" << endl;else if (a <= 0)exit(0);elseGetResult(a);
}

运行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/102316.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【漏洞复现】深信服科技EDR平台存在任意用户登录漏洞

漏洞描述 深信服终端检测响应平台EDR,通过云网端联动协同、威胁情报共享、多层级响应机制,帮助用户快速处置终端安全问题,构建轻量级、智能化、响应快的下一代终端安全系统。 该EDR系统存在任意用户登录漏洞&#xff0c;攻击者通过漏洞可以登录系统后台并获取服务器的敏感信息…

一次预制体丢失[XX prefab at index n is missing]的排查经历 及 【用代码查找场景中的预制体】

一、症状描述 &#xff08;1&#xff09;从【主场景】跳转【某场景】时&#xff0c;报错——预制体丢失[prefab is missing] &#xff08;2&#xff09;在编辑器单独启动该场景&#xff0c;没有报错 二、症状溯源 场景里面有预制体实例&#xff0c;但是我把预制体的资源删除…

vue2 vuex

一、Vuex 概述 Vuex 是一个 Vue 的 状态管理工具&#xff0c;状态就是数据。 大白话&#xff1a;Vuex 是一个插件&#xff0c;可以帮我们管理 Vue 通用的数据 (多组件共享的数据)。 使用场景 某个状态 在 很多个组件 来使用 (个人信息) 多个组件 共同维护 一份数据 (购物车) …

17-Sharding-jdbc

一 Sharding-JDBC介绍 1 背景 随着通信技术的革新&#xff0c;全新领域的应用层出不穷&#xff0c;数据存量随着应用的探索不断增加&#xff0c;数据的存储和计算模式无时无刻不面临着创 新。面向交易、大数据、关联分析、物联网等场景越来越细分&#xff0c;单 一数据库再也无…

MongoDB常用的比较符号和一些功能符号

比较符号 results collection.find({age: {$gt: 20}})功能符号 results collection.find({name: {$regex: ^M.*}})

伪微分反馈控制(Pesudo-Drivative Feedback Control——PDF)

运动控制-单轴伺服控制带宽分析&#xff08;二&#xff09; - 知乎 (zhihu.com) 伪微分反馈控制_百度百科 (baidu.com) 伺服电机控制器的参数整定_老马过河hhh的博客-CSDN博客 伪微分PIIP控制_yukee10的博客-CSDN博客

Discourse 能支持多少数量的主题

支持主题的数量和 ID 使用的数据类型有关。 根据我们从 Discourse 上 dump 出来的 SQL&#xff0c;我们看到 Discourse 的官方使用 Integer 作为 ID 的数据类型。 随后&#xff0c;我们查看了 pgsql 的官方文档&#xff0c;integer 是 4 字节的&#xff0c;能够存储的最大值为…

Pythonの类

Python是一种面向对象编程语言&#xff0c;因此类在Python中是很重要的概念。类是一种定义数据和行为的模板&#xff0c;可以创建对象并针对特定的问题对其进行操作。 在Python中&#xff0c;类的定义以关键字"class"开头&#xff0c;后跟类的名称。类可以包含方法和…

数据库 设计规范数据库设计样例

目录 5 数据库5.1 数据库命名规范5.2 数据库字段命名5.2.1 字段命名规范5.2.2 命名规范5.2.3 待优化命名示例5.2.4 字段类型规范5.2.5数据库中每个字段的规范描述 5.3表设计5.4 参考设计5.4.1 应用场景5.4.2 需求分析5.4.3 设计思路5.4.4 表结构设计5.4.5 缓存策略Q1 冗余设计和…

音视频入门基础理论知识

文章目录 前言一、视频1、视频的概念2、常见的视频格式3、视频帧4、帧率5、色彩空间6、采用 YUV 的优势7、RGB 和 YUV 的换算 二、音频1、音频的概念2、采样率和采样位数①、采样率②、采样位数 3、音频编码4、声道数5、码率6、音频格式 三、编码1、为什么要编码2、视频编码①、…

ASO优化之阅读并回复应用的评论

回复评论对于与用户保持牢固的关系非常重要。如果时间有限&#xff0c;优先回复负面评论&#xff0c;可以向其他用户保证&#xff0c;我们正在积极解决应用的问题&#xff0c;从而提高转化率。 1、逻辑与沟通要清晰。 首先&#xff0c;无论他们的反馈是正面还是负面&#xff0…

最短路Dijkstra,spfa,图论二分图算法AYIT---ACM训练(模板版)

文章目录 前言A - Dijkstra Algorithm0x00 算法题目0x01 算法思路0x02 代码实现 B - 最长路0x00 算法题目0x01 算法思路0x02 代码实现 C - 二分图最大匹配0x00 算法题目0x01 算法思路0x02 代码实现 D - 搭配飞行员0x00 算法题目0x01 算法思路0x02 代码实现 E - The Perfect Sta…