题目:特定位数比较

题目介绍:输入两行数据,第一行为 m 个正整数,以空格隔开;第二行为正整数 n ,且 n<= m;要求对第一行的数字的后三位大小进行排序,输出排行 n 的数字,其中,若不满三位数则直接比较;若两数字比较结果相等则两数相对位置不变;排序时位置从1开始。

例:

输入:

12 450 9001 5231 8231 7231

5

输出:

7231

分析:因为输入中并没有正整数 m 即输入正整数的个数,因此我们需要先解决“输入一行数字,以空格间隔,以回车结尾,存储在数组里”的问题,这个问题有两种解决方案,一种是直接int p[100] ;每有一个数字存储进数组k++,最终 k 的值就是数组的长度;另一种是用 vector 和 reserve ,预设100空间,这样不用占用太多内存,详情见代码。其次要解决的问题就是数字的后三位比较,这个直接取余1000就可以办到。最后的问题是排序,把源数组和取余后的数组放在一起,序号一一应对,拍完序直接输出下标 [ n-1 ] 即可。

 #include <iostream>
#include <vector>
#include <stdlib.h>
using namespace std;
int main()
{
vector <int> p;
int i = , j = , k = ;
int n;
int mid = ;
int a;
char c;
p.reserve();
p.push_back();
while (cin >> a)
{
p[k++] = a;
p.push_back(k);
if ((c=getchar()) == '\n')
{
break;
}
}
int *q = new int[k];
for (i = ; i < k; i++)
{
q[i] = p[i] % ;
}//取后三位数字
for (i = ; i < k; i++)
{
for (j = ; j < k; j++)
{
if (q[i] > q[j] && i < j)
{
mid = q[i];
q[i] = q[j];
q[j] = mid;//中间数
mid = p[i];
p[i] = p[j];
p[j] = mid;
}
}
}
cin >> n;
cout << p[n - ] << endl;
}

结果如图:

华为笔试——C++特定位数比较的更多相关文章

  1. WPF中StringFormat的用法--显示特定位数的数字

    原文:WPF中StringFormat的用法--显示特定位数的数字 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/huangli321456/art ...

  2. matlab里面如何保留小数特定位数

    [转载]Matlab取整函数有: fix, floor, ceil, round.取整函数在编程时有很大用处. 一.取整函数 1.向零取整(截尾取整) fix-向零取整(Round towards z ...

  3. mybatis 的查询某个字段的特定位数(模糊查询)

    获取特定的几位:1.取url字段后三位字符 select SUBSTRING(url, -3) from link; 2.取url字段前三位字符 select SUBSTRING(url, 3) fr ...

  4. 华为笔试——C++括号匹配

    题目:括号匹配 题目来源:https://blog.csdn.net/lizi_stdio/article/details/76618908 题目介绍:输入一个字符串,里面可能包含“()”.“ [   ...

  5. 华为笔试——C++消重输出

    题目:消重输出 题目介绍: 输入一个正整数,给出消除重复数字以后最大的整数,注意需要考虑长整数. 例: 输入:988274320 输出:9874320 题目分析:这个结果的实现需要两个步骤:消重和排序 ...

  6. 27号华为笔试(三道ac两道)

    三道题目case:100,100,0: 三个题目: 前两个都全部ac了,第三题没时间: 记录一下大概的思路: 第一题 主要通过Java中的字符串处理函数:然后控制字符串输入格式: 卡bug的点: 1: ...

  7. 华为笔试——C++平安果dp算法

    题目:平安果 题目介绍:给出一个m*n的格子,每个格子里有一定数量的平安果,现在要求从左上角顶点(1,1)出发,每次走一格并拿走那一格的所有平安果,且只能向下或向右前进,最终到达右下角顶点(m,n), ...

  8. 华为笔试——C++字符串四则运算的实现

    题目:字符串四则运算的实现 有字符串表示的一个四则运算表达式,要求计算出该表达式的正确数值.四则运算即:加减乘除"+-*/",另外该表达式中的数字只能是1位(数值范围0~9),运算 ...

  9. 华为笔试——C++最高分问题

    题目介绍:现在输入一组数据,写入学生的考试分数.已知学生数为N,学生编号为1到N,且0<N<=30000,每个学生都有一个分数:操作数为M且0<M<5000.输入第一行为N M ...

随机推荐

  1. Web—08-移动端库和框架

    移动端js事件 移动端的操作方式和PC端是不同的,移动端主要用手指操作,所以有特殊的touch事件,touch事件包括如下几个事件: 1.touchstart: //手指放到屏幕上时触发 2.touc ...

  2. 2019年,200道面试题打造最受企业欢迎的iOS程序猿!

    在2018年底,小编混迹在各种iOS交流群中,整理出了将近两百道大厂最喜欢在面试问到的问题,今天在这里分享给大家[免费获取方式在最后]!                           小编就不在 ...

  3. [iOS]被忽略的main函数

    如同任何基于C的应用程序,程序启动的主入口点为iOS应用程序的main函数.在iOS应用程序,main函数的作用是很少的.它的主要工作是控制UIKit framework.因此,你在Xcode中创建任 ...

  4. 获取Linux下的IP地址 java代码

    /** * 获取Linux下的IP地址 * * @return IP地址 * @throws SocketException */ public static String getLinuxLocal ...

  5. SQL循环插入批量数据

    declare @i intdeclare @qid int set @i=1set @qid=100 while @i<50000begininsert into Order(orderid, ...

  6. nginx+uwsgi+flask+supervisor 项目部署

    环境 - Linux: Ubuntu 16.04 - uWSGI 2.0.18 - Flask 1.0.2 - supervisor 3.2.0 - nginx/1.8.1 首先区分几个概念 WSGI ...

  7. CentOS6.10安装详解

    一.简介 CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterpriser ...

  8. TensorFlow的前世和今生

    TensorFlow的前世和今生 TensorFlow是一个开放源码的软件库,用于跨一系列任务的数据流处理编程.TensorFlow是一个符号化的数学应用库,广泛用于机器学习,例如神经网络.在谷歌公司 ...

  9. VirtualBox + CentOS详细安装教程

    一.前期工作准备 电脑虚拟化开启(必要工作)大致流程: a.电脑开机时长按F12(F10)进入BIOS界面; b.依次选择Configuratio > Intel Virtual Technol ...

  10. js动态获取浏览器或页面等容器的宽高

    首先说一下js动态获取浏览器或页面等容器的宽高的方法大体有哪些: 网页可见区域宽: document.body.clientWidth 网页可见区域高: document.body.clientHei ...