题255.pat甲级练习-1073 Scientific Notation (20 分)
一、题目
二、题解
#include <bits/stdc++.h>
using namespace std;
int main()
{
string A;
cin>>A;
int sign=1;
if(A[0]=='-')
{
sign=-sign;
}
int posE=A.find('E');
string exp=A.substr(posE+1,A.length()-posE-1);
int movestep=stoi(exp);
int posPoint=A.find('.');
string res="";
if(movestep<0)
{
if(sign<0)
{
res+='-';
}
res+="0.";
movestep++;
while(movestep!=0)
{
res+='0';
movestep++;
}
for(int i=1; i<posE; i++)
{
if(A[i]!='.')
{
res+=A[i];
}
}
}
else
{
if(sign<0)
{
res+='-';
}
res+=A[1];
if(movestep==0)
{
}
else
{
int i;
for(i=3; i<posE&&movestep!=0; i++)
{
res+=A[i];
movestep--;
}
if(movestep==0)
{
if(i<posE)
{
res+='.';
}
for(; i<posE; i++)
{
res+=A[i];
}
}
else
{
while(movestep!=0)
{
res+='0';
movestep--;
}
}
}
}
cout<<res<<endl;
}
|