求助大佬,为什么有三个RE
查看原帖
求助大佬,为什么有三个RE
823268
k1ngs8312楼主2022/10/31 21:33
#include<iostream>
#include<cstring>
using namespace std;
typedef long int ll;
int main()
{
	string s;
	cin>>s;
	if(s.find(".")!=string::npos)
	{
		string s1=s.substr(0,s.find("."));
		string s2=s.substr(s.find(".")+1,s.length());
		for(int i=0;i<s1.length()/2;i++)
		{
			char temp=s1[i];
			s1[i]=s1[s1.length()-1-i];
			s1[s1.length()-1-i]=temp;
		}
		for(int i=0;i<s2.length()/2;i++)
		{
			char temp=s2[i];
			s2[i]=s2[s2.length()-1-i];
			s2[s2.length()-1-i]=temp;
		}
		ll x=stoi(s1);
		ll y=stoi(s2);
		while(y%10==0&&y>0)
		y=y/10;
		cout<<x<<"."<<y;
	}
	else if(s.find("/")!=string::npos)
	{
		string s1=s.substr(0,s.find("/"));
		string s2=s.substr(s.find("/")+1,s.length());
		for(int i=0;i<s1.length()/2;i++)
		{
			char temp=s1[i];
			s1[i]=s1[s1.length()-1-i];
			s1[s1.length()-1-i]=temp;
		}
		for(int i=0;i<s2.length()/2;i++)
		{
			char temp=s2[i];
			s2[i]=s2[s2.length()-1-i];
			s2[s2.length()-1-i]=temp;
		}
		ll x=stoi(s1);
		ll y=stoi(s2);
		while(y%10==0&&y>0)
		y=y/10;
		cout<<x<<"/"<<y;
	}
	else if(s.find("%")!=string::npos)
	{
		s=s.erase(s.find("%"),1);
		for(int i=0;i<s.length()/2;i++)
		{
			char temp=s[i];
			s[i]=s[s.length()-i-1];
			s[s.length()-i-1]=temp;
		}
		ll x=stoi(s);
		cout<<x<<"%";
	}
	else
	{
		for(int i=0;i<s.length()/2;i++)
		{
			char temp=s[i];
			s[i]=s[s.length()-i-1];
			s[s.length()-i-1]=temp;
		}
		ll x=stoi(s);
		cout<<x;
	}
}
2022/10/31 21:33
加载中...