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方法排序,因为本题不是简单按照大小排序, ...
随机推荐
- linux tcpdump抓取HTTP包的详细解释
tcpdump tcpdump是linux系统自带的抓包工具,主要通过命令行的方式,比较适合在线上服务器进行抓包操作,如果是windows或者ubuntu完全可 以选择一些图形化的工具,ubuntu比 ...
- 关于Spring @RequestBody 自动映射模型原理
关于Spring @RequestBody 自动映射模型 2016年10月18日 22:17:12 稻子丶 阅读数:5049 在很多时候,Spring的注解为我们提供了很多方便,但只知道其用法,不 ...
- Win10家庭版打不开gpedit.msc
本文来源 : https://www.ithome.com/html/win10/324926.htm win10家庭版是不自带这个功能的 首先我们打开记事本,并输入以下内容(注意空格): @echo ...
- (转)Linux下PS1、PS2、PS3、PS4使用详解
Linux下PS1.PS2.PS3.PS4使用详解 原文:http://www.linuxidc.com/Linux/2016-10/136597.htm 1.PS1——默认提示符 如下所示,可以通过 ...
- 关于vi 分屏的一些指令
分屏都是以ctrl + W(大写) 首先,ctrl+ W , v 为切屏 之后用 :e 打开其他文件 ctrl + W , c 为关闭当前分屏 ctrl + W , h 为切换到左侧分屏 ...
- Python 配置文件加载且自动更新(watchdog)
安装依赖:pip install watchdog #!/usr/bin/env python3 # -*- coding: utf-8 -*- import logging import os im ...
- Maven的安装以及介绍
附录:带阿里源的maven用户设置文件-settings.xml <?xml version="1.0" encoding="UTF-8"?> &l ...
- jackson简单使用案例
新建Maven项目导入依赖包:jakson <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=&quo ...
- JS for循环删除数组元素
$(function(){ var aa = [1,1,2,3,3,4,4,5]; alert(aa); for (var i = aa.length-1;i >= 0 ;i--) { if ( ...
- webpack 的异步组件 生成commonchunks
new webpack.optimize.CommonsChunkPlugin({ async: 'async-common', minChunks: function (module, count) ...