[保研/考研机试] 杨辉三角形 西北工业大学复试上机题 C++实现

题目描述

Time Limit: 1000 ms
Memory Limit: 256 mb

输入n值,使用递归函数,求杨辉三角形中各个位置上的值。

输入描述:

一个大于等于2的整型数n

输出描述:

题目可能有多组不同的测试数据,对于每组输入数据,
按题目的要求输出相应输入n的杨辉三角形。

示例

输入:

6

输出:

1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1

思路:

杨辉三角第一行和第二行的内容很明显,从第三行开始就很有规律了:每一行的第一个和最后一个元素都是1,从第二个到倒数第二个元素都是上一行的两个相邻元素的和。这里可以简单的分为奇数行和偶数行,只需要用两个一维数组就可以,保存相邻的两行元素,不断迭代更新它们的内容,并及时输出。虽然用一个二维数组来保存每一行的数值会简单许多,但是题目输入的是一个大于等于2的整数n,当n很大时,如果用一个二维数组来保存每一行的数值会占用较大的空间。

注意:根据题目的示例输出,这里并不需要输出杨辉三角第一行的数值1。

源代码:

#include<iostream>
#include<vector>
using namespace std;

//习题8.1 杨辉三角形
int main()
{
	int n;
	vector<int> nums1 = { 1 };
	vector<int> nums2 = { 1,1 };
	while (cin >> n) {
		for (int i = 2; i <= n; i++) {
			if (i % 2 == 1) { //奇数行
				nums1.resize(1);
				for (int j = 1; j < i - 1; j++) {
					nums1.push_back(nums2[j - 1] + nums2[j]);
				}
				nums1.push_back(1);
				for (auto it : nums1) {
					cout << it << " ";
				}
				cout << endl;
			}
			else { //偶数行
				nums2.resize(1);
				for (int j = 1; j < i - 1; j++) {
					nums2.push_back(nums1[j - 1] + nums1[j]);
				}
				nums2.push_back(1);
				for (auto it : nums2) {
					cout << it << " ";
				}
				cout << endl;
			}
		}
	}
	
	return 0;
}

提交结果:

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java代理模式——静态代理与动态代理

代理模式 代理模式允许你为其他对象提供一个代理&#xff0c;以控制对这个对象的访问。代理模式在不改变实际对象的情况下&#xff0c;可以在访问对象时添加额外的功能。 可以理解为代理模式为被代理对象创造了一个替身&#xff0c;调用者可以通过这个替身去实现这个被代理对…

定长内存池设计ConcurrentMemoryPool

原理 还回来的内存用链表串联起来&#xff0c;称为自由链表 内存块自身进行链接&#xff0c;前四个字节存下一个的地址 结构 template<class T> class ObjectPool { public:T* New(){} private:char* _memory nullptr; //方便切割void* _freeList nullptr; };第一步…

Axure RP移动端高保真CRM办公客户管理系统原型模板及元件库

Axure RP移动端高保真CRM办公客户管理系统原型模板及元件库&#xff0c;一套典型的移动端办公工具型APP Axure RP原型模板&#xff0c;可根据实际的产品需求进行扩展&#xff0c;也可以作为移动端原型设计的参考案例。为提升本作品参考价值&#xff0c;在模板设计过程中尽量追求…

uniapp 自定义手机顶部状态栏不生效问题

想要的效果想淘宝一样&#xff0c;底色覆盖到手机顶部&#xff0c;找了两天都没找到原因&#xff0c;过程很艰苦&#xff0c;直接上结果吧 项目是后来接手的&#xff0c;最终原因出在这&#xff0c; "immersed" : false>设置为 true 就可以了&#xff0c;沉浸式样…

RunnerGo的相比较JMeter优势,能不能替代?

目前在性能测试领域市场jmeter占有率是非常高的&#xff0c;主要原因是相对比其他性能测试工具使用更简单&#xff08;开源、易扩展&#xff09;&#xff0c;功能更强大&#xff08;满足多种协议的接口&#xff09;&#xff0c;但是随着研发协同的升级&#xff0c;平台化的性能…

Java智慧工地APP源码带AI识别

智慧工地为建筑全生命周期赋能&#xff0c;用创新的可视化与智能化方法&#xff0c;降低成本&#xff0c;创造价值。 一、智慧工地APP概述 智慧工地”立足于互联网&#xff0c;采用云计算&#xff0c;大数据和物联网等技术手段&#xff0c;针对当前建筑行业的特点&#xff0c;…

【Sklearn】基于朴素贝叶斯算法的数据分类预测(Excel可直接替换数据)

【Sklearn】基于朴素贝叶斯算法的数据分类预测&#xff08;Excel可直接替换数据&#xff09; 1.模型原理2.模型参数3.文件结构4.Excel数据5.下载地址6.完整代码7.运行结果 1.模型原理 模型原理&#xff1a; 朴素贝叶斯分类是基于贝叶斯定理的一种分类方法。它假设特征之间相互…

海康威视摄像头二次开发_云台控制_视频画面实时预览(基于Qt实现)

一、项目背景 需求:需要在公司的产品里集成海康威视摄像头的SDK,用于控制海康威视的摄像头。 拍照抓图、视频录制、云台控制、视频实时预览等等功能。 开发环境: windows-X64(系统) + Qt5.12.6(Qt版本) + MSVC2017_X64(使用的编译器) 海康威视提供了设备网络SDK,设备网…

爬虫练手项目——获取龙族小说全文

网站信息 目标网站信息如下&#xff1a;包含了龙族1-5全部内容 代码 import requests from bs4 import BeautifulSoup import os import timeheaders {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Sa…

NAS搭建指南一——服务器的选择与搭建

一、服务器的选择 有自己的本地的公网 IP 的请跳过此篇文章按需求选择一个云服务器&#xff0c;目的就是为了进行 frp 的搭建&#xff0c;完成内网穿透我选择的是腾讯云服务器&#xff0c;我的配置如下&#xff0c;仅供参考&#xff1a; 4. 腾讯云服务器官网地址 二、服务器…

工具推荐:Wireshark网络协议分析工具(对比tcpdump)

文章首发地址 Wireshark是一款开源的网络协议分析工具&#xff0c;可以捕获网络数据包并对其进行详细的分析和解释。下面是Wireshark的详细介绍&#xff1a; Wireshark 工作原理 Wireshark通过捕获网络接口上的数据包&#xff0c;将其转换为可读的格式&#xff0c;并在界面…

React入门 jsx学习笔记

一、JSX介绍 概念&#xff1a;JSX是 JavaScript XML&#xff08;HTML&#xff09;的缩写&#xff0c;表示在 JS 代码中书写 HTML 结构 作用&#xff1a;在React中创建HTML结构&#xff08;页面UI结构&#xff09; 优势&#xff1a; 采用类似于HTML的语法&#xff0c;降低学…

java中右移>>和无符号右移>>>的区别

public static void main(String[] args) {byte[] dest new byte[2];dest[0] 0x15; //0001 0101dest[1] (byte) 0xfb;//1111 1011System.out.println((dest[0] >> 4) & 0xff);//右移 应该是0000 0001 十进制结果显示1 结果也是1&#xff0c;正确System.out.printl…

【Linux命令详解 | chown命令】 chown命令用于修改文件或目录的所有者,常与chmod一起使用

文章标题 简介一&#xff0c;参数列表二&#xff0c;使用介绍1. 更改文件的所有者2. 递归地更改目录及其内容的所有者3. 使用--from参数改变所有者4. 使用--reference参数参考其他文件或目录的所有者5. 获取帮助信息和版本信息 总结 简介 在Linux系统中&#xff0c;chown命令被…

【AI作画】使用Stable Diffusion的艺术二维码完全生成攻略

文章目录 前言Stable Diffusion 简介 什么是云端平台&#xff1f;优势灵活性和可扩展性成本效益高可用性和容错性管理简便性 选择适合的云端平台 平台优势平台操作购买算力并创建工作空间启动工作空间应用市场一键安装 使用Stable-Diffusion作图使用控制网络将文本转图像二维码…

03-基础入门-搭建安全拓展

基础入门-搭建安全拓展 1、涉及的知识点2、常见的问题3、web权限的设置4、演示案例-环境搭建&#xff08;1&#xff09;PHPinfo&#xff08;2&#xff09;wordpress&#xff08;3&#xff09;win7虚拟机上使用iis搭建网站&#xff08;4&#xff09;Windows Server 2003配置WEB站…

Tomcat 部署及优化

Tomcat概述 Tomcat 是 Java 语言开发的&#xff0c;Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器&#xff0c;是 Apache 软件基金会的 Jakarta 项目中的一个核心项目&#xff0c;由 Apache、Sun 和其他一些公司及个人共同开发而成。在中小型系统和并发访问用户不是很…

深入了解Linux运维的重要性与最佳实践

Linux作为开源操作系统的代表&#xff0c;在企业级环境中的应用越来越广泛。而在保障Linux系统的正常运行和管理方面&#xff0c;Linux运维显得尤为关键。本文将介绍Linux运维的重要性以及一些最佳实践&#xff0c;帮助读者更好地了解和掌握Linux系统的运维技巧。 首先&#xf…

实验二十八、三角波发生电路参数的确认

一、题目 利用 Multisim 确定图1所示电路中各元件的参数&#xff0c;使输出电压的频率为 500 Hz 500\,\textrm{Hz} 500Hz、幅值为 6 V 6\,\textrm{V} 6V 的三角波。 图 1 三角波发生电路 图1\,\,三角波发生电路 图1三角波发生电路 2、仿真电路 A 1 \textrm A_1 A1​ 采用…

三维模型OSGB格式轻量化在三维展示效果上的重要性探讨

三维模型OSGB格式轻量化在三维展示效果上的重要性探讨 三维模型在展示中的效果是十分关键的&#xff0c;因为它直接影响用户对模型的理解和体验。而OSGB格式轻量化是实现优质三维展示效果的关键技术之一。下面将详细介绍轻量化OSGB格式的三维模型在三维展示效果上的重要性。 首…
最新文章