PAT甲级1060 Are They Equal:[C++题解]字符串处理、有效数字、代码简洁!!!
文章目录
- 题目分析
- 题目链接
题目分析
来源:acwing
分析:字符串处理
题意:把一个数变成0.xxxxx * 10^xxxxx 的形式(小数点后面第一个是大于零的数,除非输入的数本来就是0),位数的话超过的话从前往后截取(不是四舍五入),不足的后面补零。表示方法类似科学计数法。
思路:
- 用字符串
string
存数字。 - 找到小数点的位置k,用来求计数法中的指数
- 字符串中删掉小数点,用变量k来计量次幂
- 去掉前导零,过程中k会
k--
.这一步需要对照样例来理解,k就是最后要求的次幂!!! - 位数:不足n的后面补零,使用
+string(n-s.size(),'0')
;超过n位的截取,使用substr
函数。 - 添头加尾:
"0."+ s + "*10^" + to_string(k);
ac代码
测试数据
输入:2 0.000001 0.1
标答:NO 0.10*10^-5 0.10*10^0
#include<bits/stdc++.h>
using namespace std;string change(string a, int n){int k = a.find("."); //找小数点if(k == -1) a +=".",k =a.find(".");//去掉小数点string s = a.substr(0,k) + a.substr(k+1);//去掉前导零,小数点的位置也要变while(s.size() && s[0]=='0') s =s.substr(1),k--;if(s.empty()) k =0;//超过n位截断if(s.size() > n ) s =s.substr(0,n);//不足n位补足0else s+= string(n-s.size(),'0');return "0."+ s + "*10^" + to_string(k);}
int main(){int n;string a, b;cin >> n >> a >> b;a= change(a ,n);b =change(b, n);if(a == b )cout<< "YES "<<a <<endl;else cout<< "NO "<< a <<" " << b<<endl;}
题目链接
PAT甲级1060 Are They Equal
https://www.acwing.com/problem/content/1548/
PAT甲级1060 Are They Equal:[C++题解]字符串处理、有效数字、代码简洁!!!相关推荐
- PAT甲级1084 Broken Keyboard:[C++题解]字符串处理、双指针算法
文章目录 题目分析 题目来源 题目分析 来源:acwing ac代码1:双指针算法 读入两个字符串a和b,用两个指针i和j分别遍历a.b.如果a[i] ==b[j],说明键盘没坏,j往后移动一个:如果 ...
- PAT甲级1073 Scientific Notation:[C++题解]字符串处理、科学计数法
文章目录 题目分析 题目链接 题目分析 来源:acwing 分析:字符串处理. 思路: 把底数部分抠出来(用a表示);指数部分变成int型(用b表示)(指数部分代表小数点往哪移动,并且移动几位),比如 ...
- PAT甲级1016 Phone Bills :[C++题解]字符串处理(复杂题)(C语言格式化读入、输出很便利!!!)
文章目录 题目分析 题目链接 题目分析 原题: 长途电话公司按以下规则向客户收费: 拨打长途电话每分钟要花费一定的费用,具体收费取决于拨打电话的时间. 客户开始拨打长途电话的时间将被记录,客户挂断电话 ...
- PAT甲级1071 Speech Patterns :[C++题解]字符串哈希
文章目录 题目分析 题目链接 题目分析 题目重述:统计含有空格的字符串,切分出出现次数最多的单词. 题目分析: 读入:读入一行,包括空格,使用getline(cin,str); 处理: 先遍历str, ...
- PAT甲级1050 String Subtraction:[C++题解]字符串作差
文章目录 题目分析 朴素算法 hash表优化 题目链接 题目分析 遇到的问题:如何删除下标i的值,我的意思是i后面的需要前移吗?还是有好的解决方法. 笔者想到的是打上标记! string读入一整行的方 ...
- PAT甲级1053 Path of Equal Weight (30分) :[C++题解]dfs求树的路径长度、邻接表
文章目录 题目分析 题目链接 题目分析 输入样例: 20 9 24 10 2 4 3 5 10 2 18 9 7 2 2 1 3 12 1 8 6 2 2 00 4 01 02 03 04 02 1 ...
- PAT甲级1138 Postorder Traversal:[C++题解]前序遍历和中序遍历建树
文章目录 题目分析 题目链接 题目分析 做过前面几道题,发现这道题就是一道模板题,递归建树即可. 还是使用笔者熟悉的hash表来找根,进行优化. 请移步至笔者的另一篇文章:PAT甲级1020 Tree ...
- PAT甲级1051 Pop Sequence:[C++题解]模拟栈、判断序列是否是合法的出栈序列
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 题意:将1~N压栈,判断给定序列是否是合法的出栈序列. 对于序列1~N中的每个值i,先将其压入栈.然后对于它就有两种处理方法:要么压 ...
- PAT甲级1085 Perfect Sequence :[C++题解]双指针
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:求满足条件M≤m×pM \leq m\times pM≤m×p的区间[m, M]最长是多少.此处有一性质:当最大值M变大的时候,最小值 ...
最新文章
- iOS提交应用至App Store流程及真机调试 一,证书、配置文件
- 机械加工工艺师手册_机械加工工艺师——机床应用篇
- c#进阶(4)—— Redis 用于消息队列的存储
- HTML5学习笔记---Html5简单理解,发展情况...
- zookeeper无法启动的原因定位
- webpack的一些plugin,怎么使用webpack对项目进行优化
- MSRA,我的实习初体验(下)
- PX4无人机配置4G空地多机组网系统
- POJ 2987 Firing【最大权闭合图】
- Gale-Shapley算法(基于python3.6)
- 回归远程 - 云原生IDE是IaC从表象触达本质的必然选择 | SmartIDE
- 微型计算机硬件系统包括什么,微型计算机的硬件系统包括什么?
- 999宝藏网ghostxp-sp2(圣诞+纯净版)
- Ken Thompson 的经典 C 程序
- 帆软Report设置参数列表
- Python笔记day04(基础)|列表、元组
- JSONObject转对象
- 足球比赛数据分析系统
- JAVA毕设项目家庭记账系统(java+VUE+Mybatis+Maven+Mysql)
- python冒泡排序例子