1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| #include <string> #include <iostream> #include <algorithm> #include <cmath> using namespace std; string str,ans=""; int epos,e; int main(){ cin>>str; epos=find(str.begin(),str.end(),'E')-str.begin(); e=abs(stoi(str.substr(epos+1))); if(str[0]=='-') ans+='-'; if(str[epos+1]=='-'){ ans.append(e,'0'); for(int i=0;i<epos;i++){ if(isdigit(str[i])) ans.append(1,str[i]); } if (ans[0]=='-') ans.insert(2,"."); else ans.insert(1,"."); }else if(str[epos+1]=='+'){ for(int i=0;i<epos;i++){ if(isdigit(str[i])) ans.append(1,str[i]); } if (e>=epos-3){ ans.append(e-epos+3,'0'); } else{ if(ans[0]=='-') ans.insert(2+e,"."); else ans.insert(1+e,"."); } } cout<<ans; return 0; }
|