题目

题目地址:PAT 乙级 1024

题解

模拟题,重点需要考虑到各种不同情况;简单来说一下;

因为输入格式固定,所以把不同的部分分别存储和处理可以在很大程度上简化运算;其中需要考虑最多的就是小数部分在指数不同时的处理方式,大略可以分为以下几种情况:

1. 指数为正,大于基数(也就是需要在之后补零)

2. 指数为正,小于基数    注:这种情况没有考虑到,一直有一个测试点过不了

3. 指数为负

最后需要说明一点,对于上述第一种情况,如果基数尾部有0,一定要考虑到并且做相应的处理

代码

  1. #include <iostream>
  2. #include <string>
  3. #include <cmath>
  4. using namespace std;
  5.  
  6. int main() {
  7. string str, xiaoshu, zhishu;
  8. char c1, c2, zhenshu;
  9. int len = , sum = , loc_E = ;
  10. cin >> str;
  11. c1 = str[];
  12. zhenshu = str[];
  13. for (int i = ; i < str.size(); i++) {
  14. if (str[i] == 'E') {
  15. loc_E = i;
  16. break;
  17. }
  18. xiaoshu += str[i];
  19. }
  20. c2 = str[loc_E + ];
  21. for (int i = loc_E + ; i < str.size(); i++)
  22. zhishu += str[i];
  23. if (c1 == '-')
  24. cout << '-';
  25. len = zhishu.size();
  26. len--;
  27. for (int i = ; i < zhishu.size(); i++) {
  28. sum += (zhishu[i] - '') * pow(, len);
  29. len--;
  30. }
  31. if (c2 == '+') {
  32. int loc = xiaoshu.size() - ;
  33. while (xiaoshu[loc] == '' && loc >= )
  34. loc--;
  35. cout << zhenshu;
  36. if (sum < xiaoshu.size()) {
  37. for (int i = ; i < xiaoshu.size(); i++) {
  38. if (i == sum)
  39. cout << '.';
  40. cout << xiaoshu[i];
  41. }
  42. }
  43. else {
  44. for (int i = ; i <= loc; i++) {
  45. cout << xiaoshu[i];
  46. }
  47. sum = sum - loc - ;
  48. for (int i = ; i < sum; i++)
  49. cout << '';
  50. }
  51. }
  52. else {
  53. cout << "0.";
  54. for (int i = ; i < sum; i++)
  55. cout << '';
  56. cout << zhenshu << xiaoshu;
  57. }
  58. cout << endl;
  59.  
  60. return ;
  61. }

PAT 乙级 1024的更多相关文章

  1. PAT乙级1024

    题目链接 https://pintia.cn/problem-sets/994805260223102976/problems/994805297229447168 题解 第一遍也是没有全部AC,有3 ...

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

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

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

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

  4. PAT乙级 1024 科学计数法

    思路 1.尝试失败:一开始想打算把结果直接存在一个字符串中,后来发现当指数大于0的时候还需要分别考虑两种情况,工程量巨大,尝试失败,于是借鉴了其他大佬思路,写出了ac代码 2.ac思路:首先取指数的绝 ...

  5. PAT乙级:1092 最好吃的月饼 (20分)

    PAT乙级:1092 最好吃的月饼 (20分) 题干 月饼是久负盛名的中国传统糕点之一,自唐朝以来,已经发展出几百品种. 若想评比出一种"最好吃"的月饼,那势必在吃货界引发一场腥风 ...

  6. C#版 - PAT乙级(Basic Level)真题 之 1021.个位数统计 - 题解

    版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - P ...

  7. PAT乙级真题及训练题 1025. 反转链表 (25)

    PAT乙级真题及训练题 1025. 反转链表 (25) 感觉几个世纪没打代码了,真是坏习惯,调了两小时把反转链表调出来了,心情舒畅. 这道题的步骤 数据输入,数组纪录下一结点及储存值 创建链表并储存上 ...

  8. PAT 乙级 1017

    题目 题目地址:PAT 乙级 1017 题解 粗看是一道大数除法题,实际上只不过是通过字符数组模拟除法过程,理解之后还是比较简单的: 具体分析一下本题: 因为题设中的除数(n)是一位整数,因此大幅简化 ...

  9. PAT 乙级 1015

    题目 题目地址:PAT 乙级 1015 题解 常规题,难点在于理清楚排序规则,通过比较简洁的方式进行编码: 在这里我选择使用vector进行存储,并使用sort方法排序,因为本题不是简单按照大小排序, ...

随机推荐

  1. POI 读取Excel数据

    private List<LeagueGroup> read() throws IOException{ List<LeagueGroup> leagueGroups=new ...

  2. [原创]Nodejs 远程执行linux shell

    分享几个基于nodejs远程执行linux shell的函数 参数说明: ips - 一个存有IP地址的数组对象 /** * Created by kevalin on 2015/4/27. */ v ...

  3. HTML常用标签参考学习

    1.跑马灯标签 功能<marquee>...</marquee> 普通卷动<marquee behavior=slide>...</marquee> 滑 ...

  4. mybatis + log4j2 问题 java.lang.NoClassDefFoundError: org/apache/logging/log4j/spi/AbstractLoggerWrapper

    root cause java.lang.NoClassDefFoundError: org/apache/logging/log4j/spi/AbstractLoggerWrapper 网上资料比较 ...

  5. n宫格的实现方法

    方法一.table 1.看成多列 <style> .line{ display: table; width: 1024px; clear:both; overflow:auto; /*-- ...

  6. spring-framework-3.0.2RELEASE之后为啥没有依赖包了?

    缘起:莫莫接到新任务要学习spring mvc,于是在网上找了个demo文档跟着一起做.这个是学习的网址: http://www.open-open.com/doc/view/a6462d9a2e2b ...

  7. [转] Adobe acrobat 破解教程

    最新版的Adobe Acrobat DC Pro可以使我们更方便的管理和编辑PDF文档,现在我为大家带来Adobe Acrobat DC Pro安装及破解教程,供大家安装和使用. 工具/原料   Ad ...

  8. Android 悬浮窗权限各机型各系统适配大全

    这篇博客主要介绍的是 Android 主流各种机型和各种版本的悬浮窗权限适配,但是由于碎片化的问题,所以在适配方面也无法做到完全的主流机型适配,这个需要大家的一起努力,这个博客的名字永远都是一个将来时 ...

  9. JAXB介绍二

    链接上一遍 JAXB介绍一 , 本节主要介绍解析xml的步骤, 下面的例子是在实际项目中运用的, 把它拿出来单独写一个java运行程序. 5. 测试实例 先给出我的代码结构图: 再给出要解析的Scri ...

  10. iOS核心动画高级技巧之CALayer(一)

    iOS核心动画高级技巧之CALayer(一) iOS核心动画高级技巧之图层变换和专用图层(二)iOS核心动画高级技巧之核心动画(三)iOS核心动画高级技巧之性能(四)iOS核心动画高级技巧之动画总结( ...