【PTA刷题整理】PAT 乙级 1024 科学计数法

编程入门 行业动态 更新时间:2024-10-26 22:30:37

【PTA刷题整理】PAT <a href=https://www.elefans.com/category/jswz/34/1765193.html style=乙级 1024 科学计数法"/>

【PTA刷题整理】PAT 乙级 1024 科学计数法

2020.03.16 今天的题目是一种我不能灵活处理应对的题型,解决的过程中参考了几个博客的文章,感觉真的涨了不少知识,这个题目以后还要重做一次,这里附上大佬的链接
PAT B 1024 科学计数法(C语言)*16行代码搞定


1024 科学计数法 (20分)

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

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

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

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

+1.23400E-03

输出样例 1:

0.00123400

输入样例 2:

-1.2E+10

输出样例 2:

-12000000000


首先是这个科学计数法怎么接收怎么处理的问题,想过用字符串来接受然后进行对正负号、E、小数点进行特判,再使用for循环输出,中间插入E的个数,对小数点的位置进行调整,但是这样肯定不是最优的做法
在很多博客看到了使用正则来接收这个科学计数法,说实话这个知识点我并不熟悉(要去看书了),所以第一时间根本就想不出来,即便题目都说了这几个字了
具体的题解可以看上文贴的链接,对三元运算符的运用实在佩服

 scanf("%[^E]E%d", n, &index);

也有用普通转义符的

scanf("%d.%[0-9]E%d",&d,Dec,&e);

#include<iostream>                  //输入输出流头文件
#include<stdio.h>                   //标准输入输出
#include<stdlib.h>
#include<math.h>                    //数学函数
#include<string.h>                  //C语言字符数组的字符串
#include<algorithm>                 //C++标准模板库的函数
#include<map>                       //map映射容器
#include<unordered_map>             //无序的map映射容器
#include<vector>                    //变长数组容器
#include<queue>                     //队列
#include<stack>                     //栈
#include<string>                    //C++string类
#include<set>                       //set集合
using namespace std;                //标准命名空间//可以加入全局变量或者其他函数int main(){                         //主函数
#ifdef ONLINE_JUDGE                 //如果有oj系统(在线判定),则忽略文件读入,否则使用文件作为标准输入
#elsefreopen("1.txt", "r", stdin);   //从1.txt输入数据
#endifchar Dec[10000];int e , d;scanf("%d.%[0-9]E%d",&d,Dec,&e);if(d < 0){cout << "-";}int counter = 0;while(e++ < 0){cout << "0";if(counter == 0){cout << ".";}counter++;}e--;cout << abs(d);for(int i = 0; i < strlen(Dec) || i < e; i++){printf("%s%c",i==e && !counter ? ".":"",i<strlen(Dec) ? Dec[i] : '0');}return 0;                       
}

更多推荐

【PTA刷题整理】PAT 乙级 1024 科学计数法

本文发布于:2024-02-25 21:00:10,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1700278.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:乙级   科学   PTA   PAT

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!