#include<iostream>
using namespace std;
int main()
{
int _digit_[40000]={0};
int*digit=_digit_+25000;
string s;
cin>>s;
//0负号,1整数,2小数点, Epos 'E',+-,次数
int Epos,i;
for(Epos=4;s[Epos]!='E';Epos++);
int cishu=0,signal;
if(s[Epos+1]=='+')signal=1;
else signal=-1;
for(i=Epos+2;i<s.size();i++)cishu=cishu*10+s[i]-'0';
cishu*=signal;
digit[cishu]=s[1]-'0';
for(i=cishu-1;i>=cishu-(Epos-3);i--){
digit[i]=s[cishu+2-i]-'0';
}
int end=cishu-(Epos-3);
if(s[0]=='-')cout<<'-';
if(cishu<0){
cout<<"0.";
for(i=-cishu-1;i--;)cout<<0;
for(i=cishu;i>=end;i--)cout<<digit[i];
}
else{
for(i=cishu;i>=0;i--)cout<<digit[i];
if(end<0){
cout<<'.';
for(i=-1;i>=end;i--)cout<<digit[i];
}
}
//cishu-1 3
//cishu-2 4
}
1073 Scientific Notation
最新推荐文章于 2024-07-19 21:09:58 发布