PAT甲级1060 Are They Equal:[C++题解]字符串处理、有效数字、代码简洁!!!

本文主要是介绍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++题解]字符串处理、有效数字、代码简洁!!!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/465818

相关文章

Spring Boot 中的默认异常处理机制及执行流程

《SpringBoot中的默认异常处理机制及执行流程》SpringBoot内置BasicErrorController,自动处理异常并生成HTML/JSON响应,支持自定义错误路径、配置及扩展,如... 目录Spring Boot 异常处理机制详解默认错误页面功能自动异常转换机制错误属性配置选项默认错误处理

C++中detach的作用、使用场景及注意事项

《C++中detach的作用、使用场景及注意事项》关于C++中的detach,它主要涉及多线程编程中的线程管理,理解detach的作用、使用场景以及注意事项,对于写出高效、安全的多线程程序至关重要,下... 目录一、什么是join()?它的作用是什么?类比一下:二、join()的作用总结三、join()怎么

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束

详解MySQL中JSON数据类型用法及与传统JSON字符串对比

《详解MySQL中JSON数据类型用法及与传统JSON字符串对比》MySQL从5.7版本开始引入了JSON数据类型,专门用于存储JSON格式的数据,本文将为大家简单介绍一下MySQL中JSON数据类型... 目录前言基本用法jsON数据类型 vs 传统JSON字符串1. 存储方式2. 查询方式对比3. 索引

Python实现MQTT通信的示例代码

《Python实现MQTT通信的示例代码》本文主要介绍了Python实现MQTT通信的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 安装paho-mqtt库‌2. 搭建MQTT代理服务器(Broker)‌‌3. pytho

MySQL字符串常用函数详解

《MySQL字符串常用函数详解》本文给大家介绍MySQL字符串常用函数,本文结合实例代码给大家介绍的非常详细,对大家学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql字符串常用函数一、获取二、大小写转换三、拼接四、截取五、比较、反转、替换六、去空白、填充MySQL字符串常用函数一、

Java堆转储文件之1.6G大文件处理完整指南

《Java堆转储文件之1.6G大文件处理完整指南》堆转储文件是优化、分析内存消耗的重要工具,:本文主要介绍Java堆转储文件之1.6G大文件处理的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言文件为什么这么大?如何处理这个文件?分析文件内容(推荐)删除文件(如果不需要)查看错误来源如何避

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

Java docx4j高效处理Word文档的实战指南

《Javadocx4j高效处理Word文档的实战指南》对于需要在Java应用程序中生成、修改或处理Word文档的开发者来说,docx4j是一个强大而专业的选择,下面我们就来看看docx4j的具体使用... 目录引言一、环境准备与基础配置1.1 Maven依赖配置1.2 初始化测试类二、增强版文档操作示例2.