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

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.kler.cn/a/371582.html

相关文章:

  • WPF+MVVM案例实战(十一)- 环形进度条实现
  • 堆的基本概念和插入删除方法的介绍
  • c语言中结构体传参和实现位段
  • 微信小程序25__实现卡片变换
  • Redis与Redis集群的三种模式
  • android 手机姿态(2)
  • 【17】 傅立叶分析
  • Java项目实战II基于Spring Boot的小型诊疗预约平台(开发文档+数据库+源码)
  • 【LeetCode热题100】链表
  • 初识算法 · 前缀和(1)
  • 使用TimeShift备份和恢复Ubuntu Linux
  • jeecgbootvue2菜单路由配置静态文件夹(public)下的html
  • 从0到1,AI我来了- (7)AI应用-ComfyUI-III-Flux模型
  • Matlab实现蚁群算法求解旅行商优化问题(TSP)(理论+例子+程序)
  • Python基础:python的self是啥 附:含数据接收、解码和保存例子(基础)
  • 通过ssh端口反向通道建立并实现linux系统的xrdp以及web访问
  • 微服务设计模式 - 重试模式(Retry Pattern)
  • 驱动和芯片设计哪个难
  • Linux安装mysql【超详细】
  • 开放式耳机什么品牌最好?不入耳蓝牙耳机排行榜力荐!
  • 2016 年 7 月和 8 月期间进行的大气层析(ATom)-1 飞行活动中测得的黑碳(BC)质量混合比(单位:纳克 BC / 千克空气)
  • 【52 机器学习 | 基于KNN近邻和随机森林模型对用户转化进行分析与预测】
  • 1、两数之和
  • 油猴脚本-GPT问题导航侧边栏增强版
  • ip地址分为几大类-IP和子网掩码对照表
  • 【React】React 的核心设计思想