[C++]杨辉三角

news2024/11/17 11:53:45

目录

题目

解题思路

代码实现

获取数字

打印函数

主函数

全部代码

运行结果


题目

给定一个非负整数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);
	else
		GetResult(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);
	else
		GetResult(a);
}

运行结果

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

合宙Air724UG LuatOS-Air LVGL API控件-加载器(Spinner)

加载器(Spinner) 示例代码 spinner lvgl.spinner_create(lvgl.scr_act(), nil) lvgl.obj_set_size(spinner, 100, 100) lvgl.obj_align(spinner, nil, lvgl.ALIGN_CENTER, 0, 0) 创建 通过 lvgl.spinner_create 就可创建一个加载器&#xff0c;本身自带动画效果。 spinner …

PageHelper分页原理解析

大家好&#xff0c;我是Leo! 今天给大家带来的是关于PageHelper原理的解析&#xff0c;最近遇到一个SQL优化的问题&#xff0c;顺便研究了一下PageHelper的原理&#xff0c;毕竟也是比较常用&#xff0c;源码也比较好看的懂&#xff0c;如果感兴趣的小伙伴可以跟着过程去DEBUG源…

【优选算法】—— 前缀和算法

前言&#xff1a; 本期&#xff0c;我将要带大家学习的是有关前缀和算法的学习&#xff01;&#xff01;&#xff01; 目录 &#xff08;一&#xff09;什么是前缀和算法 &#xff08;二&#xff09;题目讲解 1、【模板】前缀和 2、【模板】二维前缀和 3、 和可被K整除的…

简明SQL截断和偏移指南:掌握LIMIT实现数据筛选

以下是用到的表。 截断 LIMIT 用于限制查询结果返回的行数&#xff0c;即最多返回多少行数据。 例如&#xff0c;返回前两行数据。 例如&#xff0c;从第二个数据开始返回两条数据&#xff08;从0开始计算&#xff09;。 偏移 OFFSET 用于指定查询结果的起始位置&#xff0c…

园区宿舍水电表改造解决方案

随着社会经济的快速发展&#xff0c;人们对生活品质的要求不断提高&#xff0c;园区宿舍作为众多企业员工和学生的居住场所&#xff0c;水电资源的合理使用和节约越来越受到关注。为了更好地满足人们对生活品质的需求&#xff0c;提高水电资源的利用效率&#xff0c;园区宿舍水…

PHP8中查询数组中指定元素-PHP8知识详解

php是使用最广泛的web编程语言&#xff0c;数组是一个数据集合&#xff0c;数组是一种非常常用的数据类型。在操作数组时&#xff0c;有时我们需要查询数组中是否有某个指定元素。在实际的程序开发中&#xff0c;我们用到了下列方法来查询数组中指定的元素&#xff1a;使用arra…

postman返回值乱码

描述&#xff1a; 在使用postman测试接口的时候&#xff0c;结果正常返回&#xff0c;但是乱码了&#xff0c;这个一般都是编码集设定的问题,后端接口是使用的springmvc Controller public class TestController(){RequestMapper("/test8")ResponseBodypublic Strin…

C++QT day2

作业 1> 封装一个结构体&#xff0c;结构体中包含一个私有数组&#xff0c;用来存放学生的成绩&#xff0c;包含一个私有变量&#xff0c;用来记录学生个数&#xff0c; 提供一个公有成员函数&#xff0c;void setNum(int num)用于设置学生个数 提供一个公有成员函数&…

微服务05-Docker基本操作

Docker的定义 1.什么是Docker Docker是一个快速交付应用、运行应用的技术&#xff1a; 可以将程序及其依赖、运行环境一起打包为一个镜像&#xff0c;可以迁移到任意Linux操作系统运行时利用沙箱机制形成隔离容器&#xff0c;各个应用互不干扰启动、移除都可以通过一行命令完…

程序分区:全局区、常量区、栈区、堆区、代码区

#include <iostream> using namespace std; //全局变量 int g_a 10; int g_b 10; //全局常量 const int c_g_a 10; const int c_g_b 10;int main() { //局部变量 int a 10; int b 10; //打印地址 cout << "局部变量a地址为&#xff1a; " <…

第一章 微信小程序入门

文章目录 一.关于小程序思维导图二.详细讲解1.初始微信小程序1.1 什么是微信小程序1.2 微信小程序的特点1.3微信小程序的发展前景1.4微信小程序的宿主环境 2.微信小程序开发前的准备2.1 注册微信小程序的开发账户2.2获取微信小程序的AppID2.3安装微信开发者工具2.4创建微信小程…

pytorch学习——循环神经网络RNN讲解及其实现

参考书籍&#xff1a;8.6. 循环神经网络的简洁实现 — 动手学深度学习 2.0.0 documentation 参考视频&#xff1a;54 循环神经网络 RNN【动手学深度学习v2】_哔哩哔哩_bilibili 一.介绍 循环神经网络RNN&#xff08;Recurrent Neural Network &#xff09;是一类广泛应用于序列…

LeetCode刷题笔记【22】:回溯专题-5(递增子序列、全排列、全排列 II)

文章目录 前置知识491.递增子序列题目描述错误思路, 踩的坑反思&正确思路 46.全排列题目描述用unordered_set used记录用过的数用数组代替unordered_set 47.全排列 II题目描述解题思路代码 总结 前置知识 参考前文 参考文章&#xff1a; LeetCode刷题笔记【18】&#xff1…

在Windows10里面mysql怎么配置环境变量

有小伙伴知道怎么给mysql配置环境变量吗&#xff0c;为了方便用户们的操作&#xff0c;最好在下载安装好mysql之后&#xff0c;给它配置一个环境变量&#xff0c;下面小编就给大家详细介绍一下mysql怎么配置环境变量&#xff0c;不太清楚的小伙伴快来看看吧。 mysql配置环境变…

【LeetCode-中等题】39. 组合总和

文章目录 题目方法一&#xff1a;递归回溯 题目 这题的nums数组里面不存在重复元素&#xff0c;所以也就无需做去重操作 但同一个元素可以被无限次取&#xff0c;说明每次递归中的for循环的开始位置就是自己 nums数组里面存在重复元素&#xff0c;去重版本&#xff1a; 方法一…

【Linux权限管理】文件:毁灭我与我无关

一.预备知识 1.LInux用户分类 一台Linux机器的用户分为两类&#xff1a; 超级用户和普通用户。 注意我这里说的用户的并不是一个固定的人&#xff0c;例如你本身就有root账号&#xff0c;但你也可以使用自己创建普通账号。当你使用root账号时&#xff0c;你就是一个超级用户…

高等数学教材重难点题型总结(四)不定积分

难点在于量级&#xff0c;不定积分一定要多练多见才能游刃有余~ 1.利用求导公式验证等式 2.计算不定积分

WebRTC中 setup:actpass、active、passive

1、先看一下整个DTLS的流程 setup:actpass、active、passive就发生在Offer sdp和Anser SDP中 Offer的SDP是setup:actpass,这个是服务方&#xff1a; v0\r o- 1478416022679383738 2 IN IP4 127.0.0.1\r s-\r t0 0\r agroup:BUNDLE 0 1\r aextmap-allow-mixed\r amsid-semanti…