华为笔试——C++特定位数比较
题目:特定位数比较
题目介绍:输入两行数据,第一行为 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++特定位数比较的更多相关文章
- WPF中StringFormat的用法--显示特定位数的数字
原文:WPF中StringFormat的用法--显示特定位数的数字 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/huangli321456/art ...
- matlab里面如何保留小数特定位数
[转载]Matlab取整函数有: fix, floor, ceil, round.取整函数在编程时有很大用处. 一.取整函数 1.向零取整(截尾取整) fix-向零取整(Round towards z ...
- mybatis 的查询某个字段的特定位数(模糊查询)
获取特定的几位:1.取url字段后三位字符 select SUBSTRING(url, -3) from link; 2.取url字段前三位字符 select SUBSTRING(url, 3) fr ...
- 华为笔试——C++括号匹配
题目:括号匹配 题目来源:https://blog.csdn.net/lizi_stdio/article/details/76618908 题目介绍:输入一个字符串,里面可能包含“()”.“ [ ...
- 华为笔试——C++消重输出
题目:消重输出 题目介绍: 输入一个正整数,给出消除重复数字以后最大的整数,注意需要考虑长整数. 例: 输入:988274320 输出:9874320 题目分析:这个结果的实现需要两个步骤:消重和排序 ...
- 27号华为笔试(三道ac两道)
三道题目case:100,100,0: 三个题目: 前两个都全部ac了,第三题没时间: 记录一下大概的思路: 第一题 主要通过Java中的字符串处理函数:然后控制字符串输入格式: 卡bug的点: 1: ...
- 华为笔试——C++平安果dp算法
题目:平安果 题目介绍:给出一个m*n的格子,每个格子里有一定数量的平安果,现在要求从左上角顶点(1,1)出发,每次走一格并拿走那一格的所有平安果,且只能向下或向右前进,最终到达右下角顶点(m,n), ...
- 华为笔试——C++字符串四则运算的实现
题目:字符串四则运算的实现 有字符串表示的一个四则运算表达式,要求计算出该表达式的正确数值.四则运算即:加减乘除"+-*/",另外该表达式中的数字只能是1位(数值范围0~9),运算 ...
- 华为笔试——C++最高分问题
题目介绍:现在输入一组数据,写入学生的考试分数.已知学生数为N,学生编号为1到N,且0<N<=30000,每个学生都有一个分数:操作数为M且0<M<5000.输入第一行为N M ...
随机推荐
- 安装及使用supervisor
用途有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断.当进程中断的时候,希望能自动重新启动它.此时,我就需要使用到了Supervisor. 前言supervisor管理的进程 ...
- Vcenter虚拟化三部曲----VMWare ESXi 5.5安装及配置
VMWare ESXi 5.5安装大概过程如下:制作虚拟化ESXi系统的USB启动盘,安装ESXi系统到USB,用USB启动ESXi系统.比较难理解,下面图解过程. 下载UNetbootin (下 ...
- 如何设计处优秀的Restful API
只知道遵规循矩的程序员是假程序员,任何技术都是不断发明创造改进的. 如何设计处优秀的Restful API? 盲目跟风,设计糟糕的Resful API = 浪费时间 ! 不啰嗦,直接进入技术主题: ...
- 1005. Spell It Right(20)—PAT 甲级
Given a non-negative integer N, your task is to compute the sum of all the digits of N, and output e ...
- 3.3.2Qt的按钮部件
#include "mywidget.h" #include "ui_mywidget.h" #include <QDebug> #include& ...
- 【PTA 天梯赛】L3-003 社交集群(并查集)
当你在社交网络平台注册时,一般总是被要求填写你的个人兴趣爱好,以便找到具有相同兴趣爱好的潜在的朋友.一个“社交集群”是指部分兴趣爱好相同的人的集合.你需要找出所有的社交集群. 输入格式: 输入在第一行 ...
- MySQL学习之路(一)——初涉MySQL。
MySQL学习之路(一) 1.1MySQL的概述 MySQL由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一个开源的关系型数据库管理系统. MySQL分为社区版和企业版. 1 ...
- echarts使用方法
1.引入完整版echarts.min.js. 2.为ECharts准备一个具备大小(宽高)的Dom . <div id="main" style="width: 6 ...
- Rails中重写Active Record字段属性
系统重构或升级时偶尔会碰到需要重写某个字段的情况,例如: 1. 读取user的name字段时,实际返回name_new字段 class User < ActiveRecord::Base def ...
- python教程(八)·文件操作
由于离高考越来越近,博主打算本篇文章过后,暂停本系列教程的更新,等到高考完后再继续本系列教程,请谅解! 这次我们学习用python操作文件,包括文件的读.写等-- 操作文件第一步--打开文件 要想操作 ...