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

c++习题36-奇数单增序列

目录

一,题目 

 二,思路

三,代码


 

一,题目 

给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。

输入描述

第1行为 N;

第2行为 N 个正整数,其间用空格间隔。

输出描述

增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。

用例输入 1 

10
1 3 2 6 5 4 9 8 7 10

用例输出 1 

1,3,5,7,9

 二,思路

  1. 奇数就是不能整除2的数,因此,在输入数据的同时也可以判断该数是否时奇数,如果是奇数,则将对应的数据添加到容器中。
  2. 向vector容器中添加数据一般都是从容器最后开始添加(在这道题中,不管是从容器开头添加数据还是末尾添加,都对程序没有影响,因为后面会对存储结果的vector容器进行升序排序)。
  3. 根据题目,在编写程序时,会有数组的排序(可以使用快排,冒泡等),如果是创建数组类型变量来存储结果数据,则需要额外写排序算法,会增加一定的代码量,而最省时的就是创建vector容器,并用sort函数来对整个容器进行升序排序(默认是升序,如果想要降序,可以自定义比较函数,作为第三个参数传入sort函数)。
  4. 在输出结果时,需要注意的就是最后一个数据的末尾不能有逗号(使用if判断即可)。
    也可以用三元运算符:cout << (i > 0 ? "," : "") << j[i];

 

三,代码

#include <bits/stdc++.h>
using namespace std;
int main() {int N;cin>>N;vector<int>n(N),j;for (int i=0;i<N;i++) {cin >> n[i];if (n[i]%2!=0) {j.push_back(n[i]);}}sort(j.begin(),j.end());for (int i=0;i<j.size();i++) {if (i > 0) cout<<",";cout<<j[i];}return 0;
}

有问题请在评论区留言或者是私信我,回复时间不超过一天。


http://www.mrgr.cn/news/61489.html

相关文章:

  • 自然语言转 SQL:通过 One API 将 llama3 模型部署在 Bytebase SQL 编辑器
  • Vue.js 使用插槽(Slots)优化组件结构
  • STC89C51与AT89C51芯片区别深度剖析
  • 《探索鸿蒙Next上开发人工智能游戏应用的技术难点》
  • STM32如何使用内部晶振作为晶振
  • 第八章 余弦定理和新闻的分类
  • 双指针——对撞指针与左右指针
  • Spring Boot集成Milvus和deeplearning4j实现图搜图功能
  • 提升质量:构建系统性的质量保证策略
  • java-web-day6-下-知识点小结
  • 构建生产级的 RAG 系统
  • GCC及GDB的使用
  • 自适应阻抗案例分析(上)
  • 基于SpringBoot+LayUI+Vue智能停车收费系统
  • 第三十三篇:TCP协议如何避免/减少网络拥塞,TCP系列八
  • 【工具】Charles对360浏览器抓包抓包
  • Nginx 迁移到 Caddy:一次完整的反向代理配置迁移实践
  • 美国技术论坛汇总
  • 滴滴面试:单表可以存200亿数据吗?单表真的只能存2000W,为什么?
  • PG数据库之视图详解
  • or-tools优化库记录
  • 数据结构:并查集
  • 不吹不黑,客观理性深入讨论国产服务器
  • Tessy学习笔记-CTE如何生成测试用例
  • linux_电脑一运行程序就死机怎么处理?
  • js 简单模拟JSON.stringify 功能