文章目录

  • 题目分析
  • 题目链接

题目分析


来源:acwing

分析:字符串处理。
思路:

  • 把底数部分抠出来(用a表示);指数部分变成int型(用b表示)(指数部分代表小数点往哪移动,并且移动几位),比如 +1.233E102=123.3+1.233E10^2=123.3+1.233E102=123.3这里的指数是2,代表小数点往后移动2位。再比如1.2003E10−2=0.0120031.2003E10^{-2}=0.0120031.2003E10−2=0.012003这里的指数是-2,代表小数点往前移动2位。
  • 底数部分去掉小数点,指数部分+1。比如 +1.233E102=123.3+1.233E10^2=123.3+1.233E102=123.3中底数a变成1233,含义是小数点放在最前面,等价于0.1233,这样的话,指数就要+1,从原来的2变成3.再比如1.2003E10−2=0.0120031.2003E10^{-2}=0.0120031.2003E10−2=0.012003中底数a变成 12003,指数变成-1.
  • b的正负代表移动方向,b的大小代表移动位数。具体例子见代码注释。

ac代码

#include<bits/stdc++.h>
using namespace std;int main(){string s;cin >> s;if(s[0] == '-') cout<<"-";int k = s.find("E");//底数部分,小数点去掉string a = s[1] + s.substr(3,k-3);//指数部分int b = stoi(s.substr(k+1));//小数点移到起始位置(左移一位),则指数部分+1;//比如0.2 *10^3, 变成 (0).02*10^4 , 指数部分3变成4b++;//cout << a<< ' '<<b<<endl;//分情况讨论//指数<0 ,小数点左移,添-b个0if(b <= 0) a= "0." + string(-b,'0')+a;//指数>0 ,且位数太多,后面添零else if( b >= a.size()) a+= string(b-a.size(),'0');//指数>0,小数点在中间,右移b位//比如a = 11222, b =2,小数点从开头往后移动2位:// a = 11.222else a = a.substr(0,b) + '.' +a.substr(b);cout<< a<<endl;
}

题目链接

PAT甲级1073 Scientific Notation
https://www.acwing.com/problem/content/1561/

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

  1. PAT甲级1077 Kuchiguse:[C++题解]字符串、最长公共后缀

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 读入n个字符串s[n],以s[0]为基础找公共后缀.枚举后缀的长度,内层循环遍历其他字符串,判断是否后缀相等. 使用子串的函数sub ...

  2. PAT甲级1061 Dating:[C++题解]字符串处理(C语言格式控制牛逼!)

    文章目录 题目分析 题目链接 题目分析 题意重述:四个字符串,前两个字符串是一组:求 日期和小时: 后两个字符串是一组:求分钟. 对于前两个字符串: 需要统计两次,位置相同并且是相同的字符. 第一个符 ...

  3. PAT甲级1035 Password:[C++题解]字符串修改

    文章目录 题目分析 题目链接 题目分析 题目重述: 题目分析: 把需要更改的字母和对应的字母分别存在string中,两者下标索引要对应. 采用 vector来存储< string, string ...

  4. android string数字字符串如何使用科学计数法,JSONObject 偶遇 数字字符串变为科学计数法 如何变为普通数字字符串...

    和 XML 一样,JSON 也是基于纯文本的数据格式.由于 JSON 天生是为 JavaScript 准备的,因此,JSON 的数据格式非常简单,您可以用 JSON 传输一个简单的 String,Nu ...

  5. golang把数字变字符串_Golang科学计数法转换string数字输出

    1.问题 最近接手一个商城运单号模块,接手后发现有部分运单号返回给前端是按照科学计数法的方式返回,如:8.0497183772403904E+17,后查库发现这些运单号在excel导入的时候就是按照科 ...

  6. 解决使用phpspreadsheet导出Xlsx纯数字字符串变成科学计数法的问题

    Demo: <?php $spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); $spreadsheet->getActiv ...

  7. PAT甲级题目翻译+答案 AcWing(字符串处理)

    1001 A+B Format (20 分) 题意 :将整数转换成标准格式 思路 :从后往前遍历字符串进行模拟,每三个数字加一个逗号,但不能是在最前面加逗号,也不能是加在负号后面 #include & ...

  8. 科学技术法c语言字符串,PAT Basic 1024. 科学计数法 (20)(C语言实现)

    我的PAT系列文章更新重心已移至Github,欢迎来看PAT题解的小伙伴请到Github Pages浏览最新内容.此处文章目前已更新至与Github Pages同步.欢迎star我的repo. 题目 ...

  9. R语言禁止数值表示为科学计数法实战(Turn Off Scientific Notation ):全局设置或者单变量设置

    R语言禁止数值表示为科学计数法实战(Turn Off Scientific Notation ):全局设置或者单变量设置 目录

最新文章

  1. pku 1724 ROADS BFS +优先队列
  2. [3]工欲善其事必先利其器-------UML常用的图(三)
  3. 【正一专栏】今晚国足能上演奇迹吗?
  4. 线性代数:第三章 矩阵的初等变换与线性方程组(2)线性方程组的解 初等方阵
  5. windows安全模式_Winclone 8 for Mac(Windows分区备份迁移和还原工具)
  6. [C/C++]C++标准
  7. Java设计模式1:设计模式概论
  8. 程序员是吃青春饭的,为啥还有这么多人想转行当程序员?
  9. 防止 重复重建相同的表
  10. ORA-00054 resource busy and acquire with NOWAIT specified Cause 错误解决方法
  11. 论文赏析[NAACL19]无监督循环神经网络文法 (URNNG)
  12. java怎么复制别人的数据库_数据库实现主从复制
  13. 和最大的连续子数组 Maximum Subarray
  14. 如何将Win7、Win10笔记本,台式机系统C盘软件搬家? 只需3个步骤!!!
  15. GStreamer的Decodebin插件
  16. 更改计算机账户类型,win10系统无法更改账户类型的两种解决方案
  17. 多字节字符与宽字节字符
  18. mysql no database selected_数据库中出现no database selected是什么意思?
  19. 快速屏蔽百度热榜百度广告百度推广
  20. 给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。 请返回 nums 的动态和。 来源:力扣(LeetCode) 链

热门文章

  1. [Android]Android端ORM框架——RapidORM(v2.1)
  2. iOS:app直播---采集篇
  3. MySQL的转义字符“\”
  4. unity 弹出式菜单_Java Swing JMenu和JPopupMenu:菜单和弹出式菜单
  5. 【STM32】FreeRTOS 任务相关 API 函数
  6. 【Matlab 控制】利用 XY Graph 画图
  7. STM32 电机教程 25 - ST MCLIB实战之开环svpwm控制
  8. 基础篇-verilog-FPGA实现频率相位调制DDS信号
  9. Msg3最大传输次数(maxHARQ-Msg3Tx)
  10. 【DIY】DIYarduino温湿度计视频图文教程