PAT 1024 科学记数法

科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][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后面的符合,及科学计数法是乘10的正数次方还是负数次方,如果是负数次方则可能输出一个0.***的数,而如果是正数次方可能要在后面补零也可能是在数中间加小数点。具体情况看代码。代码如下:

#include <bits/stdc++.h>
#define LL long long
using namespace std;
int main()
{
string a;
cin>>a;
string b;//用字符串b存储数字部分,因为科学计数法的特性不会出现前导0的情况
if(a[0]=='-')printf("-");//对于负数,输出负号
int len=a.length();
int len0=0;//要补零或者填几个0,即科学记数法是多少E
int x=0;
for(int i=1;i<len;i++){
if(a[i]!='+'&&a[i]!='-'&&a[i]!='E'&&a[i]!='.')b+=a[i];//获取数字部分
if(a[i]=='E'){
x=i;//获取E在字符串中的位置
break;
}
}
stringstream ss;//利用流来及substr函数返回E后面的数字串,即10的多少次方,我们对科学计数法的数字进行移位操作时就是根据这个数字来的
ss<<a.substr(x+2,len-x-1);
ss>>len0;
if(a[x+1]=='+'){//补零的情况
if(len0>=b.length())len0++;//如果要补零,就要++,科学计数法小数点前有一位数了已经
for(int i=0;i<b.length();i++,len0--){
cout<<b[i];
if(len0==0&&i!=b.length()-1)printf(".");//如果数字长度比补零的位数大,则应该补小数点
}
for(int k=0;k<len0;k++)printf("0");
}
else{//小数补前导零,去掉原有的小数点前的一位即可
printf("0.");
for(int k=0;k<len0-1;k++)printf("0");
cout<<b;
}
return 0;
}

PAT 1024 科学记数法的更多相关文章

  1. PAT 1024 科学计数法 (20)(精简版代码+思路+推荐测试样例)

    1024 科学计数法 (20)(20 分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+, ...

  2. 浙大 pat 1024题解

    1024. Palindromic Number (25) 时间限制 400 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue A ...

  3. PAT——1024. 科学计数法

    科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+,即数字的整数部分只有1位,小数部分至少有1位 ...

  4. PAT 1024. 科学计数法 (20)

    科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+,即数字的整数部分只有1位,小数部分至少有1位 ...

  5. PAT 1024 Palindromic Number[难]

    A number that will be the same when it is written forwards or backwards is known as a Palindromic Nu ...

  6. PAT 1024 科学计数法

    https://pintia.cn/problem-sets/994805260223102976/problems/994805297229447168 科学计数法是科学家用来表示很大或很小的数字的 ...

  7. PAT 1024 Palindromic Number

    #include <cstdio> #include <iostream> #include <cstdlib> #include <algorithm> ...

  8. C#版 - PAT乙级(Basic Level)真题 之 1024.科学计数法转化为普通数字 - 题解

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

  9. PAT 1073 Scientific Notation[字符串处理][科学记数法]

    1073 Scientific Notation(20 分) Scientific notation is the way that scientists easily handle very lar ...

随机推荐

  1. SQLAlchemy 多对多

    创建多对多表 from sqlalchemy.ext.declarative import declarative_base Base=declarative_base() from sqlalche ...

  2. lf 前后端分离 (5) 优惠券

    关于优惠券 优惠券主要通过前端传回来的course_id_list 创建数据结构 首先清空操作,将所有的优惠券清空, 并将所有优惠劵放到redis中的过程 import datetime import ...

  3. flask的request如何获取参数

    1.request.form.get("key", type=str, default=None) 获取表单数据 2.request.args.get("key" ...

  4. zz——Recent Advances on Object Detection in MSRA

    本文由DataFun社区根据微软亚洲研究院视觉组Lead Researcher Jifeng Dai老师在2018 AI先行者大会中分享的<Recent Advances on Object D ...

  5. LG2770/LOJ6122 航空路线问题 费用流 网络流24题

    问题描述 LG2770 LOG6122 题解 教训:关掉流同步之后就不要用其他输入输出方式了. 拆点. 两个拆点之间连\((1,1)\),其他连\((1,0)\) \(\mathrm{Code}\) ...

  6. MySql5.7InnoDB全文索引(针对中文搜索)

    1.ngram and MeCab full-text parser plugins 全文检索在MySQL里面很早就支持了,只不过一直以来只支持英文.缘由是他从来都使用空格来作为分词的分隔符,而对于中 ...

  7. appium--元素等待和屏幕截图

    元素等待 设置元素等待可以更加灵活的指定等待元素的时间,从而增强脚本的健壮性,提高执行效率 强制等待 from time import sleep sleep(5) 隐式等待 隐式等待是针对全部元素设 ...

  8. [LeetCode] 920. Number of Music Playlists 音乐播放列表的个数

    Your music player contains N different songs and she wants to listen to L (not necessarily different ...

  9. Npcap:Nmap项目里一个为Windows而生的嗅探库 Npcap: Nmap Project's packet sniffing library for Windows

    如果有人知道Npcap与libpcap对应的头文件列表,请告诉我,非常感谢 Introduction介绍 This Manual describes the programming interface ...

  10. [BZOJ1852] [MexicoOI06]最长不下降序列

    [BZOJ1852] [MexicoOI06]最长不下降序列 额我也不知道是不是水过去的...和网上的另一篇题解对拍过了,但是拍不出来... 经过和神仙的讨论基本可以确定是对的了 考虑如下贪心 (我将 ...