#include<iostream>
#include<string>
using namespace std;
//insert可根据下标或者迭代器插入
//find返回的是下标
//erase可以根据下标或者迭代器,erase(3,7)删除从下标3-7元素
//erase(2)删除从下标2到最后一个元素
//
string s;
int main()
{
if(cin.get()=='-')cout<<"-";
getline(cin,s,'E');//getline()不吸收结尾符
int n;
cin>>n;
if(n<0)
{
string tmp(-n-1,'0');
s.erase(s.find('.')+s.begin());
s="0."+tmp+s;
}
else{
int d=s.size()-s.find('.')-1;//统计小数位数
//0.345E+4下面做整理
if(n>d)//如果需要末位添加0
{
string tmp(n-d,'0');
s.erase(s.find('.')+s.begin());
s=s+tmp;
}
else if(n<d)
{
s.insert(s.find('.')+n+1,".");
s.erase(s.find('.')+s.begin());
}
else
{
s.erase(s.find('.')+s.begin());
}
//考虑到 0.000679E+1的情况
int t=s.find_first_not_of( "0") ;
if(t==string::npos)s="0" ;
else if(t>1)
{
s. erase(s.begin(),s.begin()+t- 1 );
}
}
cout<<s<<endl;
return 0;
}
pat 乙1024. 科学计数法
最新推荐文章于 2022-01-27 18:06:40 发布