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

科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+,即数字的整数部分只有1位,小数部分至少有1位,该数字及其指数部分的正负号即使对正数也必定明确给出。

现以科学计数法的格式给出实数A,请编写程序按普通数字表示法输出A,并保证所有有效位都被保留。

输入格式:

每个输入包含1个测试用例,即一个以科学计数法表示的实数A。该数字的存储长度不超过9999字节,且其指数的绝对值不超过9999。

输出格式:

对每个测试用例,在一行中按普通数字表示法输出A,并保证所有有效位都被保留,包括末尾的0。

输入样例1:

  1. +1.23400E-03

输出样例1:

  1. 0.00123400

输入样例2:

  1. -1.2E+10

输出样例2:

  1. -12000000000

作者: HOU, Qiming

单位: PAT联盟

时间限制: 100ms

内存限制: 64MB

代码长度限制: 16KB

PS:

注意:1、由于数字可能很大,所以不能使用double类型,只能通过字符串输出(否则后2个测试点无法通过)。

           2、补0需要同时注意:(1)、小数部分  (2)、整数部分。

           3、输出只需要按普通数字:正数无符号。

           4、正则表达式可以去学一下,用处很大。

推荐测试样例:

  1. +0.1E-1
  1. -0.01E+9999
  1. -0.01E+2
  1. -0.012E+2
  1. #include <iostream>
  2. #include <string>
  3. #include<string.h>
  4. using namespace std;
  5. int main(){
  6. string a, res;
  7. cin >> a;
  8. int k = 0;
  9. char ch = a[0];
  10. int flag = 0;
  11. while (a[k] != 'E') { //记录有效数字
  12. if (strchr("+0.-", a[k]) == NULL)
  13. flag = 1;
  14. if (isdigit(a[k]) && flag)
  15. res += a[k];
  16. k++;
  17. }
  18. int l = a.substr(a.find('.'), a.find('E')).length() - 3; //记录小数位数
  19. int c = stoi(a.substr(a.find('E') + 1, a.length())); //记录指数
  20. k = c - l;
  21. if (k < 0) {
  22. while (res.length() < abs(k)) //小数位补0
  23. res = '0' + res;
  24. res.insert(res.end() + k, '.'); //插入小数点
  25. if (res[0] == '.') //若是小数之前还需补0
  26. res = '0' + res;
  27. }
  28. else {
  29. while (k--) //整数末尾补0
  30. res += '0';
  31. }
  32. if (ch == '-') //如果是负数还需补负号,切记正数不用
  33. res = ch + res;
  34. cout << res;
  35. return 0;
  36. }

PAT 1024 科学计数法 (20)(精简版代码+思路+推荐测试样例)的更多相关文章

  1. PAT 1024. 科学计数法 (20)

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

  2. PAT (Basic Level) Practise (中文)- 1024. 科学计数法 (20)

    PAT (Basic Level) Practise (中文)- 1024. 科学计数法 (20) http://www.patest.cn/contests/pat-b-practise/1024 ...

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

    1024. 科学计数法 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 HOU, Qiming 科学计数法是科学家用来表示很 ...

  4. PAT乙级 1024. 科学计数法 (20)(未通过全部测试,得分18)

    1024. 科学计数法 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 HOU, Qiming 科学计数法是科学家用来表示很 ...

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

    1024. 科学计数法 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 HOU, Qiming 科学计数法是科学家用来表示很 ...

  6. PAT Basic 1024 科学计数法 (20 分) Advanced 1073 Scientific Notation (20 分)

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

  7. PAT——1024. 科学计数法

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

  8. 1024 科学计数法 (20 分)C与Java

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

  9. PAT 1024 科学计数法

    https://pintia.cn/problem-sets/994805260223102976/problems/994805297229447168 科学计数法是科学家用来表示很大或很小的数字的 ...

随机推荐

  1. GitHub中国区前100名到底是什么样的人?向大佬们学习。

    本文转自:码迷 http://www.mamicode.com/info-detail-1267434.html 本文根据Github公开API,抓取了地址显示China的用户,根据粉丝关注做了一个排 ...

  2. 吴裕雄 python 爬虫(4)

    import requests user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, li ...

  3. tensorflow 训练cifar10报错

    1.AttributeError: 'module' object has noattribute 'random_crop' 解决方案: 将distorted_image= tf.image.ran ...

  4. centos 7.4安装教程

    1. 2. 3. 4. 5. 6. 7. 8.

  5. java 基础-思维导图

    思维导图的好处 最近看了一些文章的思维导图,发现思维导图真是个强大的工具.了解了思维导图的作用之后,觉得把它运用到java上应该是个不错的想法,这样回顾知识点的时候一目了然,快速知道自己的短板. 思维 ...

  6. php挖掘数据编码问题

    if(json_encode($jkkey) == 'null'){//判断不是utf8会返回空 $jkkey=mb_convert_encoding($jkkey,'utf-8','gbk'); } ...

  7. 仿造mongodb的存储方式存一些假数据

    //存入数据 $data = json_encode($row); // 过滤 $data = addslashes($data); //读取数据 $falseData = stripslashes( ...

  8. 使用solr界面管理工具创建core 不能用的解决方法

    可以用命令行进行创建  首先要先进入 solr所属的 用户 solr 中 ./solr create -c solr_sample 然后创建 你的core  显示以下信息 就创建成功了 成功之之后可以 ...

  9. MyEclipse2014安装aptana插件

    1. 2. aptana插件下载地址 链接: https://pan.baidu.com/s/1sloiAK1 密码: a1nh 3. 4. 确认是否安装成功

  10. dedecms(织梦系统)如何更新手机版首页模板文件

    https://jingyan.baidu.com/article/ad310e80e4b1dd1849f49e8f.html