PAT 乙级 1024
题目
题目地址:PAT 乙级 1024
题解
模拟题,重点需要考虑到各种不同情况;简单来说一下;
因为输入格式固定,所以把不同的部分分别存储和处理可以在很大程度上简化运算;其中需要考虑最多的就是小数部分在指数不同时的处理方式,大略可以分为以下几种情况:
1. 指数为正,大于基数(也就是需要在之后补零)
2. 指数为正,小于基数 注:这种情况没有考虑到,一直有一个测试点过不了
3. 指数为负
最后需要说明一点,对于上述第一种情况,如果基数尾部有0,一定要考虑到并且做相应的处理;
代码
#include <iostream>
#include <string>
#include <cmath>
using namespace std; int main() {
string str, xiaoshu, zhishu;
char c1, c2, zhenshu;
int len = , sum = , loc_E = ;
cin >> str;
c1 = str[];
zhenshu = str[];
for (int i = ; i < str.size(); i++) {
if (str[i] == 'E') {
loc_E = i;
break;
}
xiaoshu += str[i];
}
c2 = str[loc_E + ];
for (int i = loc_E + ; i < str.size(); i++)
zhishu += str[i];
if (c1 == '-')
cout << '-';
len = zhishu.size();
len--;
for (int i = ; i < zhishu.size(); i++) {
sum += (zhishu[i] - '') * pow(, len);
len--;
}
if (c2 == '+') {
int loc = xiaoshu.size() - ;
while (xiaoshu[loc] == '' && loc >= )
loc--;
cout << zhenshu;
if (sum < xiaoshu.size()) {
for (int i = ; i < xiaoshu.size(); i++) {
if (i == sum)
cout << '.';
cout << xiaoshu[i];
}
}
else {
for (int i = ; i <= loc; i++) {
cout << xiaoshu[i];
}
sum = sum - loc - ;
for (int i = ; i < sum; i++)
cout << '';
}
}
else {
cout << "0.";
for (int i = ; i < sum; i++)
cout << '';
cout << zhenshu << xiaoshu;
}
cout << endl; return ;
}
PAT 乙级 1024的更多相关文章
- PAT乙级1024
题目链接 https://pintia.cn/problem-sets/994805260223102976/problems/994805297229447168 题解 第一遍也是没有全部AC,有3 ...
- PAT乙级 1024. 科学计数法 (20)
1024. 科学计数法 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 HOU, Qiming 科学计数法是科学家用来表示很 ...
- PAT乙级 1024. 科学计数法 (20)(未通过全部测试,得分18)
1024. 科学计数法 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 HOU, Qiming 科学计数法是科学家用来表示很 ...
- PAT乙级 1024 科学计数法
思路 1.尝试失败:一开始想打算把结果直接存在一个字符串中,后来发现当指数大于0的时候还需要分别考虑两种情况,工程量巨大,尝试失败,于是借鉴了其他大佬思路,写出了ac代码 2.ac思路:首先取指数的绝 ...
- PAT乙级:1092 最好吃的月饼 (20分)
PAT乙级:1092 最好吃的月饼 (20分) 题干 月饼是久负盛名的中国传统糕点之一,自唐朝以来,已经发展出几百品种. 若想评比出一种"最好吃"的月饼,那势必在吃货界引发一场腥风 ...
- C#版 - PAT乙级(Basic Level)真题 之 1021.个位数统计 - 题解
版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - P ...
- PAT乙级真题及训练题 1025. 反转链表 (25)
PAT乙级真题及训练题 1025. 反转链表 (25) 感觉几个世纪没打代码了,真是坏习惯,调了两小时把反转链表调出来了,心情舒畅. 这道题的步骤 数据输入,数组纪录下一结点及储存值 创建链表并储存上 ...
- PAT 乙级 1017
题目 题目地址:PAT 乙级 1017 题解 粗看是一道大数除法题,实际上只不过是通过字符数组模拟除法过程,理解之后还是比较简单的: 具体分析一下本题: 因为题设中的除数(n)是一位整数,因此大幅简化 ...
- PAT 乙级 1015
题目 题目地址:PAT 乙级 1015 题解 常规题,难点在于理清楚排序规则,通过比较简洁的方式进行编码: 在这里我选择使用vector进行存储,并使用sort方法排序,因为本题不是简单按照大小排序, ...
随机推荐
- saltstack执行结果存储到MySQL
saltstack执行结果保存到MySQL中,以便进行命令安全审计必须是python2.7以上的环境安装相关模块ubuntu系统安装 apt-get install -y python-mysqldb ...
- 长春理工大学第十四届程序设计竞赛(重现赛)M.Orx Zone
链接:https://ac.nowcoder.com/acm/contest/912/M 题意: Daenerys Stormborn, 风暴中出生的丹尼莉丝,the Unburnt, 烧不死的,Qu ...
- Jenkins +Maven+Tomcat+SVN +Apache项目持续集成构建
详解Jenkins +Maven+Tomcat+SVN +Apache项目持续集成 一:前言 1. Jenkins jenkins版本大全http://mirrors.jenkins-ci.org/ ...
- 转 Mindoc搭建流程 文档多人编辑工具。
安装方法参考: https://www.yuanmas.com/info/1bz9Y126zx.html https://www.iminho.me/version.html #step 1,安装My ...
- linux下使用swapfile
https://blog.argcv.com/articles/3248.c linux下至少有两种方法可以配置系统的swap.一种是直接格式化一个分区,用这个分区作为swap区.另一种是创建一个文件 ...
- js 和C# ashx之间数组参数传递问题
js在进行ajax提交时,如果提交的参数是数组,js无法直接进行提交,及时提交上去,解析也是比较麻烦 ajax在提交数组时,需要设置参数: traditional: true, //参数作为数组传 ...
- JS文本框输入限制
1上面的文本框只能输入数字代码(小数点也不能输入): CODE: <input onkeyup="this.value=this.value.replace(/\D/g,'')&quo ...
- Oracle 搭建Node.js开发环境
先决条件 安装oralce客户端驱动. 安装node.js. 创建项目 安装oracledb模块 $npm install oracledb 如果失败了,你可能要爬墙. 参考package ...
- 并发编程:synchronized 锁升级过程的验证
关于synchronized关键字以及偏向锁.轻量级锁.重量级锁的介绍广大网友已经给出了太多文章和例子,这里就不再重复了,也可点击链接来回顾一下.在这里来实战操作一把,验证JVM是怎么一步一步 ...
- Ubuntu上安装Samba服务器实现家庭共享
如何在Ubuntu上安装Samba服务器 大多数Linux发行版都包含Samba. 要在Ubuntu上安装Samba,只需运行: sudo apt install samba 要检查您的Samba版本 ...