1024 科学计数法 (20分) c/c++代码中有详细解释
科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][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
注***: 根据题意一定用字符串进行输入(因为指数的绝对值不超过9999)
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main(){string s;getline(cin,s);int i=0;while(s[i]!='E') i++; //定位E的位置string s1=s.substr(1,i-1); //取除符号位到E之前int n=stoi(s.substr(i+1)); //取E后,扩大或者缩小多少if(s[0]=='-')cout<<'-';if(n<0){ //小数点左移动cout<<"0.";for(int i=0;i<abs(n)-1;i++)cout<<'0';for(int i=0;i<s1.size();i++){if(s1[i]!='.')cout<<s1[i];}
}else{ //小数点右移动cout<<s1[0];int cnt,j;for(j=2,cnt=0;j<s1.size()&&cnt<n;j++,cnt++)cout<<s1[j];if(j==s1.size()){ //s1 遍历完了,补0for(int k=0;k<n-cnt;k++)cout<<'0';}else{//n 用完了,还要输出s1 里的 **懂得都懂** 不懂的反复理解代码cout<<'.'; for(int k=j;k<s1.size();k++)cout<<s1[k];}}return 0;
}
1024 科学计数法 (20分) c/c++代码中有详细解释相关推荐
- C++学习之路 | PTA乙级—— 1024 科学计数法 (20 分)(精简)
1024 科学计数法 (20 分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数 ...
- PAT 1024 科学计数法 (20分) C语言实现
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分)
立志用更少的代码做更高效的表达 PAT乙级最优题解-->传送门 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+, ...
- 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位 ...
最新文章
- Ubuntu中Atom安装与使用
- (2 sat) hdu 1824
- how tomcat works
- lock和synchronized的同步区别与选择
- 转:20分钟教你使用hexo搭建github博客
- 3-4:常见任务和主要工具之文件搜索
- C# 中对于json的解析小结
- Leecode刷题热题HOT100(2)——两数相加
- Win7下使用U盘安装Ubuntu16.04双系统图文教程(亲测)
- 数据格式与数据类型(Content-Type)
- python静态方法怎么调用_python实例方法、静态方法和类方法
- 手动导入第三方工程/类库
- 智能优化算法:金枪鱼群优化算法-附代码
- VS2015 C#6.0 中的那些新特性(转)
- redis 编译/调试
- 《异度神剑2》与犹太教卡巴拉略考
- 推荐一个node QQ机器人框架-onebot
- OSChina 周六乱弹 ——什么是村支书不可推卸的责任!
- kneighbors()返回值indices、distances详解
- 用友系统客户端登录不上服务器,客户端不能登录服务器-用友U8
热门文章
- Hello Spring boot
- 温室温度预测方案总结(万文详解)
- python项目方案书模板格式_GitHub - petterobam/python_tpl: Python项目规范模板
- 微信和支付宝收款0.2%接口
- 任拓数据科技 软件开发工程师 一面 万兴科技 前端开发工程师 一二面hr面
- 多媒体通信中内容分发网络技术分析
- 端午屈夫子祭-基于LeafLet的夫子一生时空轨迹纵览
- 毕业设计:基于STM32或(arduino)智能物联网居家防盗系统
- 【scipy.sparse中csr.matrix的用法】
- 《前沿》杂志简介|《前沿》杂志投稿及咨询