科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][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

【注意点】:

  • 首先需要找到E的位置
  • E后面的指数可能为0
  • 当E后面是+号时,可能指数小于小数位数,也可能大于小数位数,也可能等于小数位数,在输出小数点时需要注意

【AC代码】:

#include <iostream>
#include <string>using namespace std;int main()
{string s;cin >> s;int i = 0, j;int sum = 0;for (i = 0; i < s.length(); i++){if (s[i] == 'E'){for (j = i + 2; j < s.length(); j++){sum = sum * 10 + (s[j] - '0');}if (s[0] == '-'){cout << '-';}if (sum == 0)//指数为0,输出原数{for (j = 1; j < i; j++){cout << s[j];}}else//指数不为0{if (s[i + 1] == '+')//指数为正,扩大{cout << s[1];if (sum < i - 3)//小数位数比指数大,i-3表示有多少位小数{for (j = 3; j < 3 + sum; j++){cout << s[j];}cout << ".";for (j = 3 + sum; j < i; j++){cout << s[j];}}else//指数大于等于小数位数{for (j = 3; j < i; j++){cout << s[j];}for (j = 1; j <= sum - (i - 3); j++){cout << '0';}}}else//指数为负,缩小{cout << "0.";for (j = 1; j < sum; j++){cout << '0';}cout << s[1];for (j = 3; j < i; j++){cout << s[j];}}}return 0;}}return 0;
}

【PAT (Basic Level) 】1024 科学计数法 (20 分)相关推荐

  1. 【PAT乙级】1024 科学计数法 (20 分)

    题目地址 上面的精简写法: #include<cstdio> #include<iostream> #include<string> #include<alg ...

  2. PAT 1024 科学计数法 (20分) C语言实现

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

  3. C++学习之路 | PTA乙级—— 1024 科学计数法 (20 分)(精简)

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

  4. PAT (Basic Level) Practice1024 科学计数法

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

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

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

  6. 测试点错的来:1024 科学计数法 (20分)

    立志用更少的代码做更高效的表达 PAT乙级最优题解-->传送门 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+, ...

  7. 1024 科学计数法 (20 分)(c语言)

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

  8. 1024 科学计数法 (20分) c/c++代码中有详细解释

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

  9. 1024 科学计数法 (20)(20 分)

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

最新文章

  1. sql server 海量数据速度提升:SQL优化-索引(11) 【转】
  2. python 四种逐行读取文件内容的方法
  3. ActiveMQ(为什么要使用消息中间件,JMS传输模型)
  4. mysql越筛越少_面试官:为什么SELECT * 会导致查询效率低?
  5. 解决devenv.exe应用程序错误,应用程序发生异常
  6. android天气查询(一)websevice之ksoap2软件包的使用
  7. [转]Android Activity和Intent机制学习笔记
  8. 1.UNIX网络编程卷1:源码配置
  9. 【2017-12-12】Winform----Datagirdview使用
  10. err2matlab,matlab中增量调制的编程问题
  11. zabbix-通过自动注册自动添加主机
  12. GridView常用代码 (转)
  13. 使用fail2ban防止暴力破解ssh及vsftpd密码
  14. dom影像图形成数字地形图_航测相关知识点——鲲鹏智汇承接航测相关任务
  15. 学习心得 Tianmao 篇 RecyclerView.Adapter 我自己的使用理解(类组合模式)
  16. 不规范变量名的痛处和一点补救
  17. 计算机学院毕业礼物,史上最全毕业礼物攻略,绝对不能错过!
  18. 新天龙官网服务器更新消息,《新天龙八部》1月20日全服更新维护公告
  19. Linux 内存映射之文件映射
  20. 函数栈帧(详细图解)

热门文章

  1. PyTorch基础与简单应用:构建卷积神经网络实现MNIST手写数字分类
  2. 网络安全技术分析:DDoS的攻与防
  3. python3的数据类型以及模块的含义
  4. MySQL 5.5.35 单机多实例配置详解
  5. java/android 设计模式学习笔记(1)--- 单例模式
  6. TCP/IP详解学习笔记(9)-TCP协议概述
  7. 谈谈UI架构设计的演化
  8. HEVC/H.265 的未来必须是使用并行处理(OpenCL?) OpenCV和OpenCL区别
  9. awk命令使用和取出数据的最大值,最小值和平均值
  10. android听书功能实现,基于Android的喜马拉雅听书的实现.docx