测试点错的来:1024 科学计数法 (20分)
立志用更少的代码做更高效的表达
PAT乙级最优题解——>传送门
科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][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, 同时在第一个0后面添加小数点。
- 如果指数为正数,则判断指数是否小于系数长度。
- 如果小于,则在对应位置添加小数点。
- 如果大于,则添加指数-系数长度个0。
几点注意事项
1、输入时, 使用了[^E]
标识符, 它的意思和%s一致,不过不是遇到空格或回车结束,而是遇到E字符结束。
2、对于模拟题,一定要先想好思路, 缕清脉络再敲, 否则会越敲越乱。一般来说,我喜欢话树形图来表示分支和操作。
3、对于模拟题,尽量使用string或char*来进行存储, 使用整型变量存储很可能漏掉前导零。 如: +3.00001E-3
这组数据。
代码展示
#include<bits/stdc++.h>
using namespace std;
int main() {char cc[10000]; long long x2; char c1, c2, c3;scanf("%c%c.%[^E]E%c%lld", &c1, &c3, cc, &c2, &x2);string s; if(c2 == '-') {for(int i = 0; i < x2; i++) { if(i==1) s += '.';s += '0';}s += c3;s += cc;} else {s+= c3;s+= cc;if(s.length() < x2) {int len = s.length(); for(int i = 0; i < x2-len+1; i++) s+='0'; } else if(s.length() > x2+1){s.insert(x2+1, ".");}}if(c1=='-') s.insert(0,"-");cout << s;
return 0; }
测试点错的来:1024 科学计数法 (20分)相关推荐
- 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) 】1024 科学计数法 (20 分)
科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部 ...
- 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 位,该数字及其指数部 ...
- PAT乙级 1024 科学计数法 (20 分)
题目内容 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该 ...
- 【PAT乙级】1024 科学计数法 (20 分)
题目地址 上面的精简写法: #include<cstdio> #include<iostream> #include<string> #include<alg ...
- 1024 科学计数法 (20)(20 分)
1024 科学计数法 (20)(20 分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+, ...
- 1024. 科学计数法 (20)
科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+,即数字的整数部分只有1位,小数部分至少有1位 ...
最新文章
- wget下载https时遇到not trusted下载不了的解决办法
- Ubuntu Core 给物联网提供更多安全支持
- linux下kegg注释软件,KEGG功能注释工具 KofamKOALA 安装与使用
- 单调队列优化的背包问题
- 摩根溪创始人:特斯拉资产负债表有8%是比特币
- Vue.js学习笔记(一) - 起步
- 太牛逼了!自从项目中用了Disruptor之后,性能提升了2.5倍
- JavaScript开发心得--如何传递某行数据给下一页
- 取消参考文献自动编号_毕业论文给尾注加[ ]及删除自动编号
- 手机端酒店机票预订页面HTMLcss3+html5模板
- 面试题:查询字符串中出现次数最多的字符以及出现次数
- 有没有英语语音测试软件,推荐我用过的几款真正可以找外国人练口语的软件app...
- 微博红包技术探究:架构、防刷、监控和资源调度
- 【python数据分析】足球运动员的特征分析
- @Valid 注解详解 Java Bean Validation的前世今生
- oracle数据库中spool的作用,Oracle中Spool命令如何使用 Oracle中Spool命令使用方法
- Android 8.1 Audio框架(二)AudioPolicy路由策略实例分析
- Python二期学习开篇语
- Source Insight 4.0安装教程(附上安装包及破解文件)
- Zprotect patch KEY 脱壳
热门文章
- maven打包的各种方式和如何在使用maven-assembly-plugin打包时去掉assembly id
- 为什么 Go 模块在下游服务抖动恢复后,CPU 占用无法恢复
- 音视频技术在云会议场景的拓展和未来
- 感谢有你 WebRTCon 2018优秀出品人、讲师与志愿者
- FFmpeg 硬件加速方案概览 (上)
- 基于AVS2的图片容器——TPG:现状与改进之路
- 学习方法之02掌握记忆方法,在学习上就赢了一半
- 升级 Vue3 大幅提升开发运行效率
- 打通前后端,这款效能提升开源“神器”你一定要了解
- 【Go API 开发实战 5】基础1:启动一个最简单的 RESTful API 服务器