文章目录

  • 题目分析
  • 题目链接

题目分析


来源: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. iOS提交应用至App Store流程及真机调试 一,证书、配置文件
  2. 机械加工工艺师手册_机械加工工艺师——机床应用篇
  3. c#进阶(4)—— Redis 用于消息队列的存储
  4. HTML5学习笔记---Html5简单理解,发展情况...
  5. zookeeper无法启动的原因定位
  6. webpack的一些plugin,怎么使用webpack对项目进行优化
  7. MSRA,我的实习初体验(下)
  8. PX4无人机配置4G空地多机组网系统
  9. POJ 2987 Firing【最大权闭合图】
  10. Gale-Shapley算法(基于python3.6)
  11. 回归远程 - 云原生IDE是IaC从表象触达本质的必然选择 | SmartIDE
  12. 微型计算机硬件系统包括什么,微型计算机的硬件系统包括什么?
  13. 999宝藏网ghostxp-sp2(圣诞+纯净版)
  14. Ken Thompson 的经典 C 程序
  15. 帆软Report设置参数列表
  16. Python笔记day04(基础)|列表、元组
  17. JSONObject转对象
  18. 足球比赛数据分析系统
  19. JAVA毕设项目家庭记账系统(java+VUE+Mybatis+Maven+Mysql)
  20. python冒泡排序例子

热门文章

  1. Linux:目录操作
  2. mojo 关闭utf8
  3. 提炼游戏引擎系列:开篇介绍
  4. Sql Server 2005自定义分页
  5. 1.13 总结-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
  6. 2.18 Logistic 损失函数的解释-深度学习-Stanford吴恩达教授
  7. 5.11 程序示例--垃圾邮件检测-机器学习笔记-斯坦福吴恩达教授
  8. 单片机 10种软件滤波方法的示例程序
  9. 记录一次血崩式的CPLD不稳定 bug经验
  10. export_symbol的使用