码题集OJ-科学记数法 (matiji.net)
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
cin >> s;
int len=s.size();
int pos=len-1;
int cnt=len-1;
while(pos>=0) //统计一下0个数
{
if(s[pos]=='0')
{
--pos;
}
else break;
}
if(pos!=0) //如果不是100这种形式
{
string s1=s.substr(0,pos+1);
string s2=s1.substr(1);
cout<<s[0]<<"."<<s2<<'E'<<cnt<<endl;
}
else
{
if(cnt==0) //如果是1个整数,比如9,就直接输出即可
{
cout<<s[0]<<endl;
}
else //cnt不为0的话就按aEb的格式输出
{
cout<<s[0]<<'E'<<cnt<<endl;
}
}
return 0;
}