50分
查看原帖
50分
763804
junXstar楼主2024/7/12 21:18
#include <bits/stdc++.h>
using namespace std;
string s;
int main()
{
	int srt;
	getline(cin,s);
	int posd=s.find(".");
	int poss=s.find("/");
	int posp=s.find("%");
	int len=s.size();
	string s1;
	string s2;
	bool flag=0;
	if(posd==-1&&poss==-1&&posp==-1)
	{
		string snew=s;
		for(int i=0;i<len;i++)
			s[i]=snew[len-i-1];
		for(int i=0;i<len;i++)
			if(s[i]!='0'||flag)
			{
				flag=1;
				cout<<s[i];
			}
	}
	else
	if(posd!=-1)
	{
		s1=s.substr(0,posd);
		s2=s.substr(posd+1,len+1);
		string snew1=s1,snew2=s2;
		int len1=s1.size(),len2=s2.size();
		for(int i=0;i<len1;i++)
			s1[i]=snew1[posd-i-1];
		for(int i=0;i<len2;i++)
			s2[i]=snew2[len-posd-i-2];
		for(int i=0;i<len;i++)
			if(s1[i]!='0'||flag)
			{
				flag=1;
				cout<<s1[i];
			}
		cout<<'.';
		flag=0;
		for(int i=0;i<len2;i++)
			if(s2[i]!='0')
				cout<<s2[i];
	}
	if(poss!=-1)
	{
		s1=s.substr(0,poss);
		s2=s.substr(poss+1,len+1);
		string snew1=s1,snew2=s2;
		int len1=s1.size(),len2=s2.size();
		for(int i=0;i<len1;i++)
			s1[i]=snew1[poss-i-1];
		for(int i=0;i<len2;i++)
			s2[i]=snew2[len-poss-i-2];
		for(int i=0;i<len1;i++)
			if(s1[i]!='0'||flag)
			{
				flag=1;
				cout<<s1[i];
			}
		cout<<'/';
		for(int i=0;i<len2;i++)
			if(s2[i]!='0'||flag)
			{
				flag=1;
				cout<<s2[i];
			}	
	}
	if(posp!=-1)
	{
		s1=s.substr(0,posp);
		int len1=s1.size();
		string snew1=s1;
		for(int i=0;i<len1;i++)
			s1[i]=snew1[posp-i-1];
		for(int i=0;i<len1;i++)
			if(s1[i]!='0'||flag)
			{
				flag=1;
				cout<<s1[i];
			}
		cout<<'%';
	}
	return 0;
}

太多小细节要抠 我刚回洛谷每天只能下一次数据。。

2024/7/12 21:18
加载中...