洛谷P5238 整数校验器
看到没有边读入边处理的,我来水一发
我们要看一下有那些情况是格式不合法的
单独的负号
-0(后面可以有其他数字)
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 整数校验器相关推荐
- 洛谷P5238 整数校验器【三月月赛】
题目描述 https://www.luogu.org/problemnew/show/P5238 主要考虑的有几点 1.单独"-"是不行的,-0类似的也不行,00,01,02这样的 ...
- 洛谷三月月赛——P5238 整数校验器
题目链接: P5238 整数校验器 题目描述 有些时候需要解决这样一类问题:判断一个数 xxx 是否合法. xxx 合法当且仅当其满足如下条件: xxx 格式合法,一个格式合法的整数要么是 000,要 ...
- LG P5238 整数校验器
题目描述 有些时候需要解决这样一类问题:判断一个数\(x\)是否合法. \(x\)合法当且仅当其满足如下条件: \(x\)格式合法,一个格式合法的整数要么是\(0\),要么由一个可加可不加的负号,一个 ...
- P5238 整数校验器 (3月份洛谷月赛2019)
比较简单的题,把x按字符串读入,先检查是否合法,如果是一个合法的数,我们再去看是否在范围内,l,r都用字符串读入,然后手写一个字符串比较函数,然后比较是否在范围内就行了,别写出bug就行. 代码如下: ...
- Luogu 月赛 P5238 整数校验器
原题传送门 #include <bits/stdc++.h> using namespace std;bool valid(string s) {if (s == "0" ...
- 【洛谷月赛】洛谷三月月赛题解报告
昨天就是洛谷三月月赛,小编考的并不好,才31分,隔壁大佬50分,于是小编决定改一改题,先看第一题: P5238 整数校验器 题目描述 有些时候需要解决这样一类问题:判断一个数 x 是否合法. x 合法 ...
- 使用 Struts2 校验器校验用户注册信息的例子
转自:https://blog.csdn.net/jin2005006/article/details/53999562 基于验证框架的输入校验 一.创建一个struts2项目testValidato ...
- 洛谷P2146DTOJ2409 [NOI2015]软件包管理器
洛谷P2146&&DTOJ2409 [NOI2015]软件包管理器 题目 题目描述 输入格式 输出格式 样例 样例输入1 样例输出1 样例输入2 样例输出2 数据范围与提示 样例1说明 ...
- [洛谷]P2255 [USACO14JAN]记录奥林比克 (#贪心)
题目描述 Being a fan of all cold-weather sports (especially those involving cows),Farmer John wants to r ...
最新文章
- 数据蒋堂 | JOIN延伸 - 维度其它应用
- shutdown函数和FIN_WAIT2状态
- 计算机影视后期处理论文,影视后期技术发展前景论文
- Pytorch实现基本循环神经网络RNN (3)
- C#String详解
- [scikit-learn 机器学习] 4. 特征提取
- windows使用markdown离线编写文章(可设置图床)
- Core官方DI解析(3)-ServiceCallSite.md
- Python:学习笔记之函数的参数和返回值
- axure轮播图怎么设置循环轮播_Axure RP8 动态面板之轮播图设置
- 社交网络模型及属性介绍
- 公网远程Everything快速搜索私有云资料【内网穿透】
- 【重磅】英国脱离欧盟,英国首相卡梅伦宣布辞职
- Android常用固件修改
- 【Pytorch官方教程】从零开始自己搭建RNN1 - 字母级RNN的分类任务
- PC端,微信扫码实现拨打电话的功能
- python数字识别kaggle论文_基于Python语言Kaggle的数据集分析
- [转]看恐怖片能减肥
- 5.3.5—二叉查找树—Convert Sorted List to Binary Sear Tree
- 【agv搬运机器人价格大全】agv智能搬运机器人多少钱-厂家揭晓