1024. 科学计数法 (20)
来源:互联网 发布:java A 编辑:程序博客网 时间:2024/06/06 00:07
科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][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
思路很简单:字都穿模拟并处理
#include<iostream>#include<algorithm>#include<string>using namespace std;int main(){ ios::sync_with_stdio(false); string s, s1, s2; cin>>s; if(s[0] == '-') cout<<"-"; int pos = s.find("E", 0); //寻找E的位置 s1 = s.substr(1, pos-1); s2 = s.substr(pos, s.length()); //以E为界限将字符串分割为两部分 double n = atof(s2.substr(2).c_str()); //将E后的数字转化为double类型 if(s2[1] == '-') //该情况为E后数字为负,即小数点前移 { for(int i=0;i<n;++i) if(i == 0) cout<<"0."; else cout<<'0'; for(int i=0;i<s1.length();++i) { if(s1[i] != '.') cout<<s1[i]; } cout<<endl; } else //小数点后移情况 { int d = s1.find(".", 0); int l = s1.length()-2; if(n < l) //后移位数未超过原式的小数位 { d += n; for(int i=0;i<s1.length();++i) { if(s1[i]!='.' && i != d) cout<<s1[i]; else if(i == d) cout<<s1[i]<<"."; } } else //后移位数超过原式小数位,即所要生成的字符串不含小数点 { for(int i=0;i<s1.length();++i) if(s1[i]!='.') cout<<s1[i]; if(n-l>0) { for(int i=0;i<n-l;++i) cout<<"0"; } cout<<endl; } } return 0;}
阅读全文
0 0
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- 1024. 科学计数法 (20)
- AFNetworking怎么post x-www-form-urlencoded类型的数据
- Java面试宝典2015版(绝对值得收藏超长版)(一)
- linux ubuntu 16.04 deb文件的安装
- 程序员笑话...
- 发送短信验证码的思路
- 1024. 科学计数法 (20)
- 递归组合
- Class.forName(String className)使用哪个类加载器? 2015-01-08 20:56 2196人阅读 评论(0) 收藏 举报 分类: Java虚拟机(13) 版权
- Selenium2+Python2.0自动化测试【8】 下拉框
- 学习方法推荐——时间管理之GTD方法集合论
- 微信公众号增粉秘籍:三大矩阵简介
- Html Table 合并单元格
- JaVA AWT 一个很好的计算器
- RK3288[Android6.0] Wifi相关文件及类整理