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

AcWing 1204.错误票据(读取未知个数数据的新方法)

[题目概述]

某涉密单位下发了某种票据,并要在年终全部收回。每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。
因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。
你的任务是通过编程,找出断号的ID和重号的ID。假设断号不可能发生在最大和最小号。

输入格式

第一行包含整数 N,表示后面共有 N 行数据。
接下来 N 行,每行包含空格分开的若干个(不大于100个)正整数(不大于100000),每个整数代表一个ID号。

输出格式

要求程序输出1行,含两个整数 m,n,用空格分隔。
其中,m 表示断号ID,n 表示重号ID。

数据范围

1 ≤ N ≤ 100

输入样例:
2
5 6 8 11 9 
10 12 9
输出样例:
7 9
  • 题目分析
    很明显此题目的难点就是如何读入这些数据和怎样确定数据的数量。在解决这个问题后就是将数组排序,判断重号和断号。
    • stringstream类
      它其实就是字符串和其他数据类型转换的中间介质
      • 需要头文件
      #include <sstream> 
      
      • 将字符串转化为其他类型(int举例)
      #include <sstream>  
      #include <string>  
      #include <iostream>  
      using namespace std;  
      int main() {  string str = "12345";  stringstream ss(str); int number;  ss >> number;  // 从字符串读取整数  cout << "Number: " << number << endl;  // 输出: Number: 12345  return 0;  
      }
      
      • 将其他类型转为字符串(int举例)
      #include <sstream>  
      #include <string>  
      #include <iostream>  
      using namespace std;
      int main() {  int number = 12345;  stringstream ss; ss << number;  // 向流中写入整数  string str;  ss >> str;  // 从流中读取字符串  cout << "String: " << str << endl;  // 输出: String: 12345  return 0;  
      }
      
  • 完整代码
    将数据按行读取,再确定数量,排序,完成判断要求即可
#include <iostream>
#include <sstream>
#include <string>
#include <algorithm>using namespace std;int cnt,n;
const int N = 100010;
int a[N];//存放读入的数据
string line;int s1, s2;
int main(){cin >> cnt;getline(cin, line);//忽略第一个换行符//输入数据while (cnt --){//读取每一行字符串,从中分割出每一个数getline(cin, line);//用输入流,将一行字符串读入到line中stringstream ssin (line);while (ssin >> a[n]) n++;// 统计一共有多少个数,读到文件结尾结束}//排序sort(a, a + n);//遍历数组,找出重号和断号for(int i = 1;i <= n;i ++){if(a[i] == a[i - 1]) s2 = a[i];//重号else if(a[i] - a[i - 1] == 2) s1 = a[i] - 1; //断号}cout << s1 << " " << s2 << endl;return 0;
}
  • 本题主要学习stringstream这个类,会使用即可
    本题的分享就结束啦,有问题的小伙伴可以将问题发在评论区
    别忘了点赞收藏加关注!
http://www.lryc.cn/news/284172.html

相关文章:

  • 项目上线存在的缓存问题以及存在的debugger和console.log等问题
  • 均线和布林线这样的关系,WeTrade众汇实例这样使用
  • C++中的区块链与加密货币开发
  • 【云略】2023年新茶饮行业社媒营销洞察报告
  • 19. C++ static关键字
  • thinkphp6 模糊查找json下的字段值
  • 链表存数相加算法(leetcode第2题)
  • 旅游项目day07
  • java黑马学习笔记
  • WordPress后台底部版权信息“感谢使用 WordPress 进行创作”和版本号怎么修改或删除?
  • 解决字符串类型转数字类型相加结果异常问题
  • android 开发 W/TextToSpeech: speak failed: not bound to TTS engine
  • Java代码审计Shiro反序列化DNS利用链CC利用链AES动态调试
  • 【MySQL】临时变量用法
  • Flask框架小程序后端分离开发学习笔记《4》向服务器端发送模拟请求-爬虫
  • Android在系统界面上添加窗口
  • 【正点原子STM32】STM32原理图设计(芯片手册和数据手册、常见引脚类型、最小系统和IO分配)
  • 低代码自动化平台| 游戏规则改变者
  • 【分享】MathWorks中国汽车年会:“软件定义汽车”
  • RNN:Long Short-term Memory(中)
  • C# .NET读取Excel文件并将数据导出到DataTable、数据库及文本
  • 移动云助力智慧交通数智化升级
  • 【Vue技巧】vue 阻止a链接跳转事件的两种方法
  • 006.Oracle事务处理
  • 成功解决VScode进入到内置函数中调试
  • 29、WEB攻防——通用漏洞SQL注入增删改查盲注延迟布尔报错
  • 【设计模式 行为型】策略模式
  • JVM:双亲委派机制类加载器
  • 从入门到精通:ThinkPHP6异步请求的全面解析!
  • C++写csv文件