【PAT (Basic Level) 】1024 科学计数法 (20 分)
科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][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 分)相关推荐
- 【PAT乙级】1024 科学计数法 (20 分)
题目地址 上面的精简写法: #include<cstdio> #include<iostream> #include<string> #include<alg ...
- PAT 1024 科学计数法 (20分) C语言实现
1024 科学计数法 (20分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数部 ...
- C++学习之路 | PTA乙级—— 1024 科学计数法 (20 分)(精简)
1024 科学计数法 (20 分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数 ...
- PAT (Basic Level) Practice1024 科学计数法
1024 科学计数法 一.题目 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数 ...
- PAT乙级 1024 科学计数法 (20 分)
题目内容 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该 ...
- 测试点错的来:1024 科学计数法 (20分)
立志用更少的代码做更高效的表达 PAT乙级最优题解-->传送门 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+, ...
- 1024 科学计数法 (20 分)(c语言)
科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指 ...
- 1024 科学计数法 (20分) c/c++代码中有详细解释
科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部 ...
- 1024 科学计数法 (20)(20 分)
1024 科学计数法 (20)(20 分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+, ...
最新文章
- sql server 海量数据速度提升:SQL优化-索引(11) 【转】
- python 四种逐行读取文件内容的方法
- ActiveMQ(为什么要使用消息中间件,JMS传输模型)
- mysql越筛越少_面试官:为什么SELECT * 会导致查询效率低?
- 解决devenv.exe应用程序错误,应用程序发生异常
- android天气查询(一)websevice之ksoap2软件包的使用
- [转]Android Activity和Intent机制学习笔记
- 1.UNIX网络编程卷1:源码配置
- 【2017-12-12】Winform----Datagirdview使用
- err2matlab,matlab中增量调制的编程问题
- zabbix-通过自动注册自动添加主机
- GridView常用代码 (转)
- 使用fail2ban防止暴力破解ssh及vsftpd密码
- dom影像图形成数字地形图_航测相关知识点——鲲鹏智汇承接航测相关任务
- 学习心得 Tianmao 篇 RecyclerView.Adapter 我自己的使用理解(类组合模式)
- 不规范变量名的痛处和一点补救
- 计算机学院毕业礼物,史上最全毕业礼物攻略,绝对不能错过!
- 新天龙官网服务器更新消息,《新天龙八部》1月20日全服更新维护公告
- Linux 内存映射之文件映射
- 函数栈帧(详细图解)
热门文章
- PyTorch基础与简单应用:构建卷积神经网络实现MNIST手写数字分类
- 网络安全技术分析:DDoS的攻与防
- python3的数据类型以及模块的含义
- MySQL 5.5.35 单机多实例配置详解
- java/android 设计模式学习笔记(1)--- 单例模式
- TCP/IP详解学习笔记(9)-TCP协议概述
- 谈谈UI架构设计的演化
- HEVC/H.265 的未来必须是使用并行处理(OpenCL?) OpenCV和OpenCL区别
- awk命令使用和取出数据的最大值,最小值和平均值
- android听书功能实现,基于Android的喜马拉雅听书的实现.docx