2023年码题杯初赛 科学技术法 真实的:模拟

10 阅读1分钟

码题集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;
}