PAT乙级1024科学记数法:

科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的正负号即使对正数也必定明确给出。
现以科学计数法的格式给出实数 A,请编写程序按普通数字表示法输出 A,并保证所有有效位都被保留。
输入格式:
每个输入包含 1 个测试用例,即一个以科学计数法表示的实数 A。该数字的存储长度不超过 9999 字节,且其指数的绝对值不超过 9999。
输出格式:
对每个测试用例,在一行中按普通数字表示法输出 A,并保证所有有效位都被保留,包括末尾的 0。
输入样例 1:
+1.23400E-03
输出样例 1:
0.00123400
输入样例 2:
-1.2E+10
输出样例 2:
-12000000000

思路

 这个题本质上其实是根据指数的正负以及绝对值让数字中的小数点.进行正确的移动和插入或删除‘0'。

例如样例1:

输入+1.23400E-03,那么就让小数点向左移动 3 次,输出是0.00123400。

首先分解一下输入是由哪几部分组成的:
1.正负号(整个数字的);
2.数字,分为整数和小数部分;
3.正负号(指数部分的);
4.指数的绝对值。

测试点4:

考虑 +1.23456E+03 或 -0.01E+9

c++代码:

#include <iostream>
using namespace std;
#include <string>int main()
{string num;cin >> num;if (*(num.begin()) == '-')cout << *(num.begin());int E = num.find("E");string x = num.substr(1, E - 1); //普通数字int end = num.size();int ylenth = atoi((num.substr(E + 2, end)).c_str()); //指数的绝对值int ZF = E + 1;string xiaoshu = num.substr(3, E - 3);if (num[ZF] == '+'){int i = ylenth - xiaoshu.size();if (i >= 0){x.erase(1, 1);//首先删除小数点int zky = atoi(x.c_str());//转成int的好处是可以将有效数字之前的0全部忽略cout << zky;for (int j = 0; j < i; j++){cout << "0";}}else{x.erase(1, 1);x.insert(ylenth + 1, 1, '.');cout << x << endl;}}else if (num[ZF] == '-'){x.erase(1, 1);x.insert(x.begin(), ylenth, '0');x.insert(1, 1, '.');cout << x;}return 0;
}

PAT乙级1024科学记数法c++实现相关推荐

  1. PAT乙级 1024. 科学计数法 (C语言)

    1024. 科学计数法 (20) 题目: 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+,即 ...

  2. PAT乙级 1024 科学计数法 python

    题目 1024 科学计数法 分数 20 作者 HOU, Qiming 单位 浙江大学 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[± ...

  3. PAT乙级(1024 科学计数法)

    科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指 ...

  4. PAT乙级-1024 科学计数法- C语言实现(31行AC)

    考察知识点归纳: 根据题目要求输出 坑点归纳: 1.若小数部分长度等于指数值时不用在末尾加'.' 2.虽然题目说指数可能为0,实际给出指数都不为0 #include<stdio.h> in ...

  5. PAT乙级 1024 科学计数法 (20 分)

    题目内容 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该 ...

  6. PAT乙级 1024 科学计数法

    一.题目描述 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位 ...

  7. PAT乙级 C语言 1024 科学计数法

    注意点:俺没有注意到个位数是1位--且可以用"%[^E]E%d"输入,要不可以省一堆压根没用的东西--但我懒得改了 我觉得这个写的很好PAT乙级1024. 科学计数法(C语言)_对 ...

  8. PAT乙级题目索引(题目+解析+AC代码)

    题目信息 分值 PAT 乙级 1001 害死人不偿命的(3n+1)猜想 15 PAT 乙级 1002 写出这个数 20 PAT 乙级 1003 我要通过! 20 PAT 乙级 1004 成绩排名 20 ...

  9. 【最新合集】PAT乙级最优题解(题解+解析+代码)

    以下每道题均是笔者多方对比后, 思考整理得到的最优代码,欢迎交流! pat乙级题解目录 编号 标题 题解 分类 1001 害死人不偿命的(3n+1)猜想 (15分) 9行代码AC 水 1002 写出这 ...

最新文章

  1. ECharts 图表导出
  2. 各种梯度下降 bgd sgd mbgd adam
  3. python从ip端口 获取数据_python 如何获得Ip地址和端口啊?
  4. IIS------如何安装IIS
  5. Android学习笔记(三):android画图之paint
  6. [c语言]运算符的优先级与结合性
  7. Ubuntu 下配置lamp环境
  8. Vivaldi浏览增加百度搜索引擎
  9. Struts2整合Spring方法及原理
  10. 一个文科小白的数据分析师之路
  11. bash shell for循环1到100
  12. Unity2018官方汉化包
  13. php中求10递归算法,php递归算法
  14. 利用Java和photoShop实现照片拼图
  15. 测试欢迎使用CSDN-markdown编辑器
  16. 服装标准中纰裂试验方法的比较与探讨
  17. 计算机考研 东华大学,2017考研:计算机科学与技术专业考研院校推荐之东华大学...
  18. ajax注解解决中文乱码,基于注解的简单MVC框架的实现,以及jquery,prototype,ajax传输乱码问题的一点解决方法...
  19. 华为wifi信号如何连接到服务器,如何解决华为路由器搜到信号却无法连接
  20. 互融云区块链溯源防伪系统开发,超高并发,全程追溯

热门文章

  1. QQ玩一玩获取PUIN
  2. OpenCV简单图像分割
  3. obj.name 与 obj[name]语法的区别
  4. FPGA电子设计系统的资源优化(面积优化)与速度优化
  5. Buct oj 1015
  6. Kubernetes-基于资源配额(ResourceQuota)进行资源管理
  7. 计算机平均数据传输速率怎么算,如何计算总线数据传输速率
  8. qq登陆inc.php,JTBC(php) 版 QQ 一键登录实现过程
  9. 这样充满青春活力的微信公众号图文排版,你见过吗?
  10. 电商设计师(美工)必备|模板素材网站!