当前位置: 首页 > news >正文

vector习题

完数和盈数

题目

完数VS盈数_牛客题霸_牛客网

一个数如果恰好等于它的各因子(该数本身除外)之和,如:6=3+2+1。则称其为“完数”;若因子之和大于该数,则称其为“盈数”。 求出2到60之间所有“完数”和“盈数”。

输入描述:

题目没有任何输入。

输出描述:

输出2到60之间所有“完数”和“盈数”,并以如下形式输出: E: e1 e2 e3 ......(ei为完数) G: g1 g2 g3 ......(gi为盈数) 其中两个数之间要有空格,行尾不加空格。

代码

思路:

定义一个函数求出某个数的因数之和sum

定义两个数组wan和yin

遍历2到60,把这些数和对应的sum对比,从而符合条件的数加到wan和yin两个数组中。再打印输出。

 
#define  _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include<vector>
using namespace std;
​
/*
参数:int num
返回值:各参数之和 int
处理:求某个数的因数之和
*/
int FactorNum(int num) {int sum = 0;for (int i = 1; i < num; i++) {if (num % i == 0) {sum += i;}}return sum;
}
​
int main() {vector<int> wan;vector<int> yin;for (int i = 2; i <= 60; i++) {/*若因子之和等于该数,则称其为“完数”若因子之和大于该数,则称其为“盈数”*/int sum = FactorNum(i);if (sum == i) {wan.push_back(i);} else if (sum > i) {yin.push_back(i);}}printf("E:");//打印所有的完数 E: e1 e2 e3 .......(ei为完数)for (int i = 0; i < wan.size(); i++) {printf(" %d", wan[i]);}printf("\nG:");//打印所有的盈数G: g1 g2 g3 ......(gi为盈数)for (int i = 0; i < yin.size(); i++) {printf(" %d", yin[i]);}printf("\n");return 0;
}
​
​
代码分析

代码分析

对于以上的代码,我们要注意以下问题:

题目要求打印的格式是:E: e1 e2 e3 ......(ei为完数) G: g1 g2 g3 ......(gi为盈数) 其中两个数之间要有空格,行尾不加空格。所以我设置的思路是:

printf("E:"); 不加空格

printf(" %d", wan[i]); 遍历的时候空格加在前面

printf("\nG:"); E.G之间要换行;

结果吐槽:

一直自测不过,一提交竟然通过了;

剩下的树

题目:

剩下的树_牛客题霸_牛客网

输入:

500 3
100 200
150 300
470 471

输出:

298

分析:

500表示区间马路长度为500,3表示3个要移除树的区间,

然后再输入这3个区间;

最终输出就是剩下的树是多少。

输入:

L表示区间长度 M表示区间个数

再输入M个区间(left,right)

输出:移走所有区间的树之后剩下的树的个数 resultNum

思路:

创建一个数组vector<int> road(L+1);表示这条马路上有L颗树

我们可以将树存在设为0,树不存在设为1;

移走m棵树就等于将road数组中的m个0改为1;

最后看一下剩下有多少个0;

​
​

点评:这道题只要你理解了题目的输入,输出的含义;在代码实现上就不难了。故重在看懂题目;

结果:

糖果分享游戏

题目:

3426. 糖果分享游戏 - AcWing题库

一些学生围坐一圈,中间站着他们的老师,所有人都面向老师。 他们要玩一个有关糖果分享的游戏。 每个学生最开始都有一定数量的糖果(保证一定是偶数)。 每轮游戏的进程为: 老师吹起哨声,所有学生同时拿出自己一半数量的糖果,递给右边相邻的同学。 传递完成后,所有拥有奇数数量糖果的同学都将再得到一颗糖果。 游戏将不断进行,直到所有学生拥有的糖果数量均相等为止。 现在,给定所有学生的初始糖果数量,请确定游戏进行的总轮次数以及游戏结束后每个学生的糖果数量。 

分析:

1.输入:

第一行:N,表示学生数量

接下来N行:

输出: 以逆时针方向描述每个学生的初始糖果数量

2.输出:

首先输出游戏总轮次,然后输出游戏结束后每个人的糖果数量。

15 14
17 22
4 8

思路:

定义一个数组vector<int> canddys(N); (存储学生的糖果),并根据输入为它赋值。

处理游戏过程:

老师吹起哨声,所有学生同时拿出自己一半数量的糖果,递给右边相邻的同学。 传递完成后,所有拥有奇数数量糖果的同学都将再得到一颗糖果。

在每一轮循环中: 先把每个数的初值的一半存在一个数组OldNum中,把这些值赋给candy数组下一个数;

最后检查一下candy数组中的元素,若为奇数,则+1

#define  _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include<vector>
using namespace std;
bool checkCandy(vector<int>& candy);
void swap(vector<int>& candy);
​
bool checkCandy(vector<int>& candy) {int resultNum = candy[0];for (int i = 1; i < candy.size(); i++) {if (candy[i] != resultNum) {return false;}}return true;
}
​
//实现交换糖果的数量
void swap(vector<int>& candy) {int size = candy.size();vector<int>oldNum(size);for (int i = 0; i < candy.size(); i++) {oldNum[i] = candy[i] / 2;}//再把oldNum中的值赋给candyNUm中的各位中的下一位for (int i = 0; i < size; i++) {candy[i] -= oldNum[i];candy[(i + 1)%size] += oldNum[i];
​}//再检查一遍candy数组,若有奇数值,则加1for (int i = 0; i < size; i++) {if (candy[i] % 2 == 1) {candy[i] ++;}}
}
​
​
int main() {int N;while (scanf("%d", &N)!= EOF) {if (N == 0) {break;}
​vector<int> candy(N);
​//为candy数组赋值for (int i = 0; i <N; i++) {scanf("%d", &candy[i]);}//循环的次数;int count = 0;//循环结束的标志:所有学生的糖果树相等while (checkCandy(candy) == false) {//交换糖果swap(candy);count++;}
​//最后输出总轮数和每个人的剩下的糖果的数量printf("%d %d\n", count,candy[0]);}return 0;
}
​

代码分析:

1.将动态数组作为某个函数的参数时,我们可以使用值传递也可以使用引用

为了节约脑细胞,我们在所有情况下都使用引用。

2.为了实现循环的效果,在把oldNum中的值赋给candyNUm中的各位中的下一位这个逻辑中,我们使用以下的逻辑:

其中注意candy[i]要先减掉oldNum[i];且要用 candy[(i + 1)%size]加上oldNum[i];

 for (int i = 0; i < size; i++) {candy[i] -= oldNum[i];candy[(i + 1)%size] += oldNum[i];}

相关文章:

vector习题

完数和盈数 题目 完数VS盈数_牛客题霸_牛客网 一个数如果恰好等于它的各因子(该数本身除外)之和&#xff0c;如&#xff1a;6321。则称其为“完数”&#xff1b;若因子之和大于该数&#xff0c;则称其为“盈数”。 求出2到60之间所有“完数”和“盈数”。 输入描述&#xff…...

001-码云操作

码云操作 一、配置公钥1.官网地址1.进入 git bash2.查看生成的公钥3.设置到 Gitee4.测试 二、初始化一个项目1.新建仓库 一、配置公钥 方便后续提交代码不用填写密码 1.官网地址 官网地址&#xff1a;https://gitee.com/Git码云教程&#xff1a;https://gitee.com/help/arti…...

数据结构:二叉搜索树(排序树)

1.二叉搜索树的定义 二叉搜索树要么是空树&#xff0c;要么是满足以下特性的树 &#xff08;1&#xff09;左子树不为空&#xff0c;那么左子树左右节点的值都小于根节点的值 &#xff08;2&#xff09;右子树不为空&#xff0c;那么右子树左右节点的值都大于根节点的值 &#…...

【愚公系列】《Python网络爬虫从入门到精通》036-DataFrame日期数据处理

标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度…...

C++(蓝桥杯常考点)

前言&#xff1a;这个是针对于蓝桥杯竞赛常考的C内容&#xff0c;容器这些等下棋期再讲 C 在DEVC中注释和取消注释的方法&#xff1a;ctrl/ ASCII值&#xff08;常用的&#xff09;&#xff1a; A-Z:65-90 a-z:97-122 0-9:48-57 换行/n:10科学计数法&#xff1a;eg&#xff1a…...

支付宝 IoT 设备入门宝典(下)设备经营篇

上篇介绍了支付宝 IoT 设备管理&#xff0c;但除了这些基础功能外&#xff0c;商户还可以利用设备进行一些运营动作&#xff0c;让设备更好的帮助自己&#xff0c;本篇就会以设备经营为中心&#xff0c;介绍常见的设备相关能力和问题解决方案。如果对上篇感兴趣&#xff0c;可以…...

蓝桥杯 之 填空题-位运算与循环

文章目录 循环握手问题门牌制作-循环小球反弹幸运数艺术与篮球跑步卡片 位运算3个1美丽的2024 位运算 可以关注这个Lowbit(x) 如何判断最低位是否是1&#xff1f; num&1 1就说明num最低位是1 循环 循环 握手问题 握手问题 思路分析&#xff1a; 可以直接计算出来&…...

iOS逆向工程概述与学习路线图

iOS逆向工程概述与学习路线图 欢迎各位加入我的iOS逆向工程专栏&#xff01;在这个系列的第一篇文章中&#xff0c;我将为大家介绍iOS逆向工程的基本概念、应用场景以及完整的学习路线图&#xff0c;帮助大家建立清晰的学习框架。 什么是iOS逆向工程&#xff1f; 逆向工程&a…...

DeepSeek 助力 Vue3 开发:打造丝滑的时间选择器(Time Picker)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 DeepSeek 助力 Vue3 开发:打造丝滑的时间选择器(Time Picker)📚前言📚页面效果📚指令输入…...

基于 Ingress-Nginx 实现 mTLS 双向认证

目录 背景描述&#xff1a; TLS 和 MTLS 之间的差异 通过自签名证书启用双向 TLS 1. 生成证书 (1) 生成 CA&#xff08;根证书颁发机构&#xff09; (2) 生成 CA&#xff08;根证书颁发机构&#xff09; (3) 生成客户端证书 2. 在 Kubernetes 中配置 mTLS &#x…...

学到什么记什么(25.3.3)

Upload-labs 今日重新做了一下文件上传漏洞&#xff0c;这里第一题之前采用直接抓包改后缀名.jpg为.php&#xff0c;再写入一句话<?php phpinfo();?>然后放行&#xff0c;得到图片地址&#xff08;可复制&#xff09;&#xff0c;本来直接访问图片地址即可得到敏感信息…...

【子网掩码计算器:Python + Tkinter 实现】

子网掩码计算器&#xff1a;Python Tkinter 实现 引言代码功能概述代码实现思路1. 界面设计2. 功能实现3. 事件处理 子网掩码计算器实现步骤1. 导入必要的库2. 定义主窗口类 SubnetCalculatorApp3. 创建菜单栏4. 创建界面组件5. 判断 IP 地址类别6. 计算子网信息7. 其他功能函…...

《解锁HarmonyOS NEXT高阶玩法:艺术图像识别功能开发全攻略》

在当今数字化时代&#xff0c;AI技术不断拓展其应用边界&#xff0c;为各行业带来前所未有的变革。在艺术领域&#xff0c;AI图像识别技术能够帮助艺术从业者、爱好者快速识别艺术品风格、作者&#xff0c;甚至挖掘艺术品背后的历史文化信息。本文将结合HarmonyOS NEXT API 12及…...

Spring Boot的启动流程

Spring Boot 的启动流程是一个复杂且有序的过程&#xff1a; 创建SpringApplication实例 — 调用run方法 — 启动完成(发布应用启动事件&#xff0c;配置环境&#xff0c;创建ApplicationContext&#xff0c;准备ApplicationContext&#xff0c;刷新ApplicationContext[【创建B…...

【通俗讲解电子电路】——从零开始理解生活中的电路(三)

实际应用案例&#xff1a;生活中的电子电路 ——拆解你身边的“隐形工程师” 1. 手电筒电路&#xff1a;最简单的直流系统 电路组成 电源&#xff1a;2节1.5V电池&#xff08;串联3V&#xff09;。 开关&#xff1a;按钮控制回路通断。 LED&#xff1a;发光二极管&#xff…...

TypeScript系列01-类型系统全解析

本文总结了 TypeScript 的类型系统基础&#xff0c;涵盖了&#xff1a; TypeScript 的价值&#xff1a;静态类型检查为 JavaScript 添加了类型安全保障基本类型系统&#xff1a;从原始类型到特殊类型&#xff08;any、unknown、never&#xff09;的完整介绍类型注解与推断&…...

ragflow-mysql 启动失败案例分析

一、问题描述 1.拉取RAGflow镜像失败 dependency failed to start: container ragflow-mysql is unhealthy2. 查询日志 docker logs ragflow-mysql显示 出现[rootlocalhost docker]# docker logs ragflow-mysql Fatal glibc error: CPU does not support x86-64-v2 Fatal …...

SslConnection::SslConnection()详解

一、&#x1f50d; SslConnection::SslConnection() 详解 这个构造函数的主要作用是&#xff1a; 创建 SSL 对象创建 BIO&#xff08;I/O 缓冲区&#xff09;初始化 SSL 服务器模式绑定回调函数&#xff08;onRead() 处理接收数据&#xff09; &#x1f4cc; 1. 初始化 SSL 相…...

unity lua属性绑定刷新

我们现在有一个 角色属性类叫heroModel,内容如下,当heroModel中的等级发生变化的时候&#xff0c;我们需要刷新界面显示等级信息&#xff0c;通常我们是在收到等级升级成功的协议的时候&#xff0c;发送一个事件&#xff0c;UI界面接受到这个事件的时候&#xff0c;刷新一下等级…...

Self-Pro: A Self-Prompt and Tuning Framework for Graph Neural Networks

Self-Pro: A Self-Prompt and Tuning Framework for Graph Neural Networks ​#paper/GFM/GNN-BASED#​ #paper/⭐⭐⭐#​ 注意&#xff1a;这篇文章是每个图一个GCN模型&#xff0c;而不是所有图一个GCN 模型 算是最早的涉及异配图的prompt了 贡献和动机&#xff1a; 非对…...

从PostgreSQL老手视角:快速上手华为GaussDB极简版,这些操作习惯几乎一样

从PostgreSQL老手视角&#xff1a;快速上手华为GaussDB极简版的10个关键习惯迁移 如果你已经习惯了PostgreSQL的命令行操作和配置逻辑&#xff0c;第一次接触华为GaussDB时会有种奇妙的熟悉感——就像走进一间重新装修过的老房子&#xff0c;家具摆放的位置几乎没变&#xff0c…...

终极AMD Ryzen调试指南:5个场景掌握SMUDebugTool硬件调优

终极AMD Ryzen调试指南&#xff1a;5个场景掌握SMUDebugTool硬件调优 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https:/…...

如何用OpenCATS免费开源招聘系统3天搭建企业级人才库

如何用OpenCATS免费开源招聘系统3天搭建企业级人才库 【免费下载链接】OpenCATS Open-source applicant tracking system (ATS) and recruitment CRM for staffing agencies and hiring teams. 项目地址: https://gitcode.com/gh_mirrors/op/OpenCATS 还在为招聘流程混乱…...

6G通信中的HMA天线技术:原理、优势与应用

1. HMA天线技术概述在6G通信和大规模MIMO系统的发展背景下&#xff0c;Huygens Metasurface Antennas&#xff08;HMA&#xff09;技术正逐渐成为无线通信领域的研究热点。作为一名长期从事天线系统设计的工程师&#xff0c;我见证了从传统相控阵到现代超表面天线的技术演进历程…...

Linux GPIO框架深度解析:从用户空间到内核驱动的完整路径

1. 项目概述&#xff1a;为什么要在Linux下研究GPIO&#xff1f;搞嵌入式开发的朋友&#xff0c;对GPIO&#xff08;通用输入输出&#xff09;肯定不陌生。它就像芯片的“手脚”&#xff0c;负责最简单的电平控制和信号读取。在单片机时代&#xff0c;我们通常直接操作寄存器&a…...

百度 Agent 安全中心:构筑企业智能体的安全底座

本文整理自 2026 年 5 月 14 日 Create2026 百度 AI 开发者大会 - Agent Infra 专题论坛&#xff0c;百度智能云云安全产品总经理聂科峰的同名主题演讲。在 AI 生产力加速进化的时代&#xff0c;Agent 正在从「会说」快速演进到「会做」。从 Chatbot、Copilot&#xff0c;到能够…...

告别TensorFlow!用Zylo117的PyTorch版EfficientDet-D0,手把手教你训练自己的Logo检测模型

从TensorFlow到PyTorch&#xff1a;用EfficientDet-D0打造高精度Logo检测器实战指南 在计算机视觉领域&#xff0c;目标检测一直是热门研究方向。EfficientDet作为谷歌大脑团队提出的高效检测架构&#xff0c;凭借其创新的BiFPN和复合缩放策略&#xff0c;在精度和效率之间取得…...

告别轮询!用STM32CubeMX和DMA实现ADC多通道‘无感’采集与串口打印(附完整工程)

告别轮询&#xff01;STM32CubeMX与DMA实现ADC多通道无感采集实战指南 在嵌入式开发中&#xff0c;数据采集系统的效率往往决定了整个应用的性能上限。传统轮询方式不仅消耗大量CPU资源&#xff0c;还会引入不可预测的延迟。想象一下&#xff0c;当你需要同时监测多个环境传感器…...

科研学术篇---论文搜索方法

高效搜集和研读论文&#xff0c;是构建扎实知识体系的基石。要想做到“高效”与“高质”并重&#xff0c;需要把整个过程当作一个闭环系统来优化——从目标锁定、来源筛选、检索策略&#xff0c;到快速粗筛、深度内化、持续追踪&#xff0c;每一步都有对应的工具和心法。下面逐…...

卡尔曼滤波在目标跟踪中的应用:原理、建模与工程调参实战

1. 项目概述&#xff1a;从“猜”到“算”的跟踪艺术在目标跟踪这个领域&#xff0c;无论是自动驾驶中预测前车的轨迹&#xff0c;还是无人机锁定移动的物体&#xff0c;亦或是视频监控里框住一个行走的人&#xff0c;我们核心要解决的都是一个问题&#xff1a;如何在充满噪声和…...