文章目录

  • 题目分析
  • 题目链接

题目分析


来源: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++题解]字符串处理、有效数字、代码简洁!!!相关推荐

  1. PAT甲级1084 Broken Keyboard:[C++题解]字符串处理、双指针算法

    文章目录 题目分析 题目来源 题目分析 来源:acwing ac代码1:双指针算法 读入两个字符串a和b,用两个指针i和j分别遍历a.b.如果a[i] ==b[j],说明键盘没坏,j往后移动一个:如果 ...

  2. PAT甲级1073 Scientific Notation:[C++题解]字符串处理、科学计数法

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析:字符串处理. 思路: 把底数部分抠出来(用a表示);指数部分变成int型(用b表示)(指数部分代表小数点往哪移动,并且移动几位),比如 ...

  3. PAT甲级1016 Phone Bills :[C++题解]字符串处理(复杂题)(C语言格式化读入、输出很便利!!!)

    文章目录 题目分析 题目链接 题目分析 原题: 长途电话公司按以下规则向客户收费: 拨打长途电话每分钟要花费一定的费用,具体收费取决于拨打电话的时间. 客户开始拨打长途电话的时间将被记录,客户挂断电话 ...

  4. PAT甲级1071 Speech Patterns :[C++题解]字符串哈希

    文章目录 题目分析 题目链接 题目分析 题目重述:统计含有空格的字符串,切分出出现次数最多的单词. 题目分析: 读入:读入一行,包括空格,使用getline(cin,str); 处理: 先遍历str, ...

  5. PAT甲级1050 String Subtraction:[C++题解]字符串作差

    文章目录 题目分析 朴素算法 hash表优化 题目链接 题目分析 遇到的问题:如何删除下标i的值,我的意思是i后面的需要前移吗?还是有好的解决方法. 笔者想到的是打上标记! string读入一整行的方 ...

  6. 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 ...

  7. PAT甲级1138 Postorder Traversal:[C++题解]前序遍历和中序遍历建树

    文章目录 题目分析 题目链接 题目分析 做过前面几道题,发现这道题就是一道模板题,递归建树即可. 还是使用笔者熟悉的hash表来找根,进行优化. 请移步至笔者的另一篇文章:PAT甲级1020 Tree ...

  8. PAT甲级1051 Pop Sequence:[C++题解]模拟栈、判断序列是否是合法的出栈序列

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 题意:将1~N压栈,判断给定序列是否是合法的出栈序列. 对于序列1~N中的每个值i,先将其压入栈.然后对于它就有两种处理方法:要么压 ...

  9. PAT甲级1085 Perfect Sequence :[C++题解]双指针

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:求满足条件M≤m×pM \leq m\times pM≤m×p的区间[m, M]最长是多少.此处有一性质:当最大值M变大的时候,最小值 ...

最新文章

  1. java cxf服务端代码_【JAVA】 cxf 生成 webservice 服务端代码
  2. 【Spring框架家族】SpringBoot基本介绍
  3. spark算子大全glom_2小时入门Spark之RDD编程
  4. python网络爬虫的方法有几种_Python网络爬虫过程中5种网页去重方法简要介绍
  5. LeetCode 993. 二叉树的堂兄弟节点(层序遍历)
  6. 文件批量处理器Android,GFileBat 2012(文件批量处理器)V1.1 正式版
  7. OpenShift 4 - DevSecOps Workshop (Jenkins版)
  8. Python标准库-string模块《未完待续》
  9. 【ROS学习笔记】(十)ROS中的坐标系管理系统
  10. 激光slam理论与实践
  11. 苹果mac系统在文件栏添加文件夹的方法
  12. 一款网页游戏外挂开发-数据抓包
  13. 为什么面向对象糟透了?
  14. 用C程序编简易双人五子棋
  15. 小米的200万不是这么好挣的!
  16. ExpandableListView购物车—+okhttp封装
  17. 【操作系统篇】第五篇——调度(概念,层次,调度时机,切换与过程,方式,评价指标)
  18. 在Tomcat上安装部署SAIKU
  19. 跨境12V汽车一键启动PKE无钥匙进入遥控远程启动系统改装
  20. 男生如何正确的识别绿茶婊

热门文章

  1. CSS中position的几个属性值
  2. Orace 11g 监听 配置修改 说明
  3. [疑问]您没有调试该服务器的权限。验证您是服务器上Debuger Users组的成员。...
  4. 双中心积分计算氟化氢HF的动能和势能
  5. 形态数轴的非递进现象
  6. java.awt.action 命令模式_java设计模式之命令模式
  7. Python 处理带中文 Excel 文件
  8. 介绍几本专业的书籍,一起学习
  9. 10.Verilog状态机使用方法
  10. zynq 文件系统中加载PL fpga.bit笔记