看到没有边读入边处理的,我来水一发

我们要看一下有那些情况是格式不合法的

  1. 单独的负号

  2. -0(后面可以有其他数字)

  3. 0 +(后面一些数字)

我们用快速读入的方法

读取字符进行处理

还有可能超出范围的

考虑到l和r不超过20位

于是我们开一个cnt变量记录位数

如果cnt>20明显超出边界

否则按照快速读入的方法算出读入的数字

然后进行判断

要开一个至少能存储20位的整数类型,我使用了__int128

#include <bits/stdc++.h>#define int long long
#define ll __int128using namespace std;int l, r;int read() {char c = getchar();ll tmp = 0, f = 1, flag = 0, first_zero = 0, cnt = 0;while(!isdigit(c)) { // 读入特殊字符if(c == '-') { if(f == -1) {flag = 1; // 判断两个负号连在一起的情况(然而并没有)}f = -f;} else {if(c != '\n')flag = 1; // 出现了特殊情况(然而并不会有)}c = getchar();if(c == '\n') return 1; // 单独的负号}// cout << flag << endl;while(isdigit(c)) {cnt++;if(cnt == 1 && c == '0') first_zero = 1; // 第一次出现的数是0if(cnt == 2 && first_zero) flag = 1; // 第一次出现的数是0,并且后面还有数,显然不合法tmp = (tmp << 1) + (tmp << 3) + c - 48;c = getchar();}if(tmp == 0 && f == -1 && cnt == 1) return 1; // 如果是-0,明显不合法if(flag) return flag;tmp *= f;if(((cnt <= 20 && (tmp < l || tmp > r)) || cnt > 20) && !flag) return 2; // 超出边界else return flag;
}signed main() {int t;cin >> l >> r >> t;while(t--) {cout << read() << endl;}return 0;
} // qwq

转载于:https://www.cnblogs.com/iycc/p/10468096.html

洛谷P5238 整数校验器相关推荐

  1. 洛谷P5238 整数校验器【三月月赛】

    题目描述 https://www.luogu.org/problemnew/show/P5238 主要考虑的有几点 1.单独"-"是不行的,-0类似的也不行,00,01,02这样的 ...

  2. 洛谷三月月赛——P5238 整数校验器

    题目链接: P5238 整数校验器 题目描述 有些时候需要解决这样一类问题:判断一个数 xxx 是否合法. xxx 合法当且仅当其满足如下条件: xxx 格式合法,一个格式合法的整数要么是 000,要 ...

  3. LG P5238 整数校验器

    题目描述 有些时候需要解决这样一类问题:判断一个数\(x\)是否合法. \(x\)合法当且仅当其满足如下条件: \(x\)格式合法,一个格式合法的整数要么是\(0\),要么由一个可加可不加的负号,一个 ...

  4. P5238 整数校验器 (3月份洛谷月赛2019)

    比较简单的题,把x按字符串读入,先检查是否合法,如果是一个合法的数,我们再去看是否在范围内,l,r都用字符串读入,然后手写一个字符串比较函数,然后比较是否在范围内就行了,别写出bug就行. 代码如下: ...

  5. Luogu 月赛 P5238 整数校验器

    原题传送门 #include <bits/stdc++.h> using namespace std;bool valid(string s) {if (s == "0" ...

  6. 【洛谷月赛】洛谷三月月赛题解报告

    昨天就是洛谷三月月赛,小编考的并不好,才31分,隔壁大佬50分,于是小编决定改一改题,先看第一题: P5238 整数校验器 题目描述 有些时候需要解决这样一类问题:判断一个数 x 是否合法. x 合法 ...

  7. 使用 Struts2 校验器校验用户注册信息的例子

    转自:https://blog.csdn.net/jin2005006/article/details/53999562 基于验证框架的输入校验 一.创建一个struts2项目testValidato ...

  8. 洛谷P2146DTOJ2409 [NOI2015]软件包管理器

    洛谷P2146&&DTOJ2409 [NOI2015]软件包管理器 题目 题目描述 输入格式 输出格式 样例 样例输入1 样例输出1 样例输入2 样例输出2 数据范围与提示 样例1说明 ...

  9. [洛谷]P2255 [USACO14JAN]记录奥林比克 (#贪心)

    题目描述 Being a fan of all cold-weather sports (especially those involving cows),Farmer John wants to r ...

最新文章

  1. 数据蒋堂 | JOIN延伸 - 维度其它应用
  2. shutdown函数和FIN_WAIT2状态
  3. 计算机影视后期处理论文,影视后期技术发展前景论文
  4. Pytorch实现基本循环神经网络RNN (3)
  5. C#String详解
  6. [scikit-learn 机器学习] 4. 特征提取
  7. windows使用markdown离线编写文章(可设置图床)
  8. Core官方DI解析(3)-ServiceCallSite.md
  9. Python:学习笔记之函数的参数和返回值
  10. axure轮播图怎么设置循环轮播_Axure RP8 动态面板之轮播图设置
  11. 社交网络模型及属性介绍
  12. 公网远程Everything快速搜索私有云资料【内网穿透】
  13. 【重磅】英国脱离欧盟,英国首相卡梅伦宣布辞职
  14. Android常用固件修改
  15. 【Pytorch官方教程】从零开始自己搭建RNN1 - 字母级RNN的分类任务
  16. PC端,微信扫码实现拨打电话的功能
  17. python数字识别kaggle论文_基于Python语言Kaggle的数据集分析
  18. [转]看恐怖片能减肥
  19. 5.3.5—二叉查找树—Convert Sorted List to Binary Sear Tree
  20. 【agv搬运机器人价格大全】agv智能搬运机器人多少钱-厂家揭晓

热门文章

  1. Flink 中的木桶效应:单个 subtask 卡死导致整个任务卡死
  2. YOLOV4垃圾检测召回率提升
  3. python 判断矩阵是否正交
  4. DirectX11 Direct3D初始化
  5. oracle常用errcode
  6. 《了不起的盖茨比》----走出绿灯困境
  7. 小红书app复制链接转换为可直接访问链接
  8. recycleView的页面跳转设计
  9. 显示行数 设置ssh终端_mac下终端iTerm2配置
  10. 用什么软件可以提高视频批量剪辑的效率