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方法排序,因为本题不是简单按照大小排序, ...
随机推荐
- (反NIM)
题目大意是和普通的NIM游戏一样,但是却是取到最后一个是输的,天真的以为就是反过来,其实并不是这样的 结论 先手必胜的条件为 ①:所有堆的石子数均=1,且有偶数堆. ②:至少有一个堆的石子数>1 ...
- lifecycle-mapping-metadata.xml
<?xml version="1.0" encoding="UTF-8"?> <lifecycleMappingMetadata> &l ...
- IfmContextHolder(ThreadLocal)
package com.yundaex.wms.config; public class IfmContextHolder { private static final ThreadLocal< ...
- js中大数据量form表单卡顿问题解决
转载大神: http://www.mamicode.com/info-detail-1773696.html
- Jenkins之自动触发部署之插件Generic Webhook Trigger Plugin
一.安装好插件 二.构建触发器会出现设置trigger的入口 三.设置的两个部分 第一: Jenkins的这个触发器,这里主要是接受post数据.其中Post content parameters是用 ...
- 转 mysql 下载 以及安装
https://blog.csdn.net/kerafan/article/details/78001849 一.MySQL 各个版本区别 ,(都需要编译的 ) 1.MySQL Community S ...
- (转)Linux最常用指令及快捷键 Linux学习笔记
Linux最常用指令及快捷键 Linux学习笔记 原文:http://blog.csdn.net/yanghongche/article/details/50827478 [摘自 鸟叔的私房菜]--转 ...
- Hive 基本语法操练(一):表操作
Hive 和 Mysql 的表操作语句类似,如果熟悉 Mysql,学习Hive 的表操作就非常容易了,下面对 Hive 的表操作进行深入讲解. **(1)先来创建一个表名为student的内部表** ...
- js 限制文本框不能输入单引号
<input onkeydown="if(event.keyCode==32||event.keyCode==188||event.keyCode==222){return false ...
- java多线程处理任务
最近用到使用多线程处理给用户发送站内消息的问题,想到使用java自带的线程池进行处理这个问题,具体如下: 定义一个线程: package com.qlwb.util; import org.apach ...