95分求助!!#20过不去
查看原帖
95分求助!!#20过不去
719140
only_joker楼主2023/6/26 18:24
#include<bits/stdc++.h>
using namespace std;
string s;
int t=1,js=1;
char c[22],x[22];

int main(){
	x[0]='0';
	cin>>s;
	if(s.size()==1&&s[0]=='0') 
	{
		cout<<'0';
		return 0;
	 } 
	int a=1,te=0,pan=0;
	for(int i=0;i<s.size();i++)
	{
		if(a==1&&s[i]>='0'&&s[i]<='9')
		{
			if(s[i]=='0') te++;
			c[js]=s[i];
			js++;
			c[js]='0';
		}
		if(s[i]=='.') a=2;
		if(s[i]=='/') a=3;
		if(s[i]=='%') a=4;
		if(a==2&&s[i]>='0'&&s[i]<='9') 
		{
			if(s[i]=='0') pan++;
			x[t]=s[i];
			t++;
		}
		if(a==3&&s[i]>='0'&&s[i]<='9') 
		{
			if(s[i]=='0') pan++;
			x[t]=s[i];
			t++;
			x[t]='0';
		}
	}
	bool b=true;
	if(a==1)
	{
		if(te==js-1)
		{
			cout<<"0";
			return 0;
		}
		for(int i=js-1;i>=1;i--)
		{
			if(b==true&&c[i]=='0'&&c[i+1]=='0') continue;
			else 
			{
				b=false;
				cout<<c[i];
			}
		}
	}
	if(a==4)
	{
		if(te==js-1)
		{
			cout<<"0";
			return 0;
		}
		for(int i=js-1;i>=1;i--)
		{
			if(b==true&&c[i]=='0'&&c[i+1]=='0') continue;
			else 
			{
				b=false;
				cout<<c[i];
			}
		}
		cout<<"%";
	}
	if(a==2)
	{
		int xb,nm=1;
		if(te==js-1)
		{
			cout<<"0";
			nm=0;
		}
		if(nm==1)
			for(int i=js-1;i>=1;i--)
			{
				if(b==true&&c[i]=='0'&&c[i+1]=='0') continue;
				else 
				{
					b=false;
					cout<<c[i];
				}
			}
		b=true;
		cout<<".";
		if(pan==t-1)
		{
			cout<<"0";
			return 0;
		}
		for(int i=1;i<=t;i++)
		{
			if(x[i]=='0'&&x[i-1]=='0') continue;
			else 
			{
				xb=i;
				break;
			}
		}
		for(int i=t-1;i>=xb;i--)
		{
			cout<<x[i];
		}
	}
	if(a==3)
	{
		int xb,nm=1;
		if(te==js-1)
		{
			cout<<"0";
			nm=0;
		}
		if(nm==1)
			for(int i=js-1;i>=1;i--)
			{
				if(b==true&&c[i]=='0'&&c[i+1]=='0') continue;
				else 
				{
					b=false;
					cout<<c[i];
				}
			}
		b=true;
		cout<<"/";
		if(pan==t-1)
		{
			cout<<"0";
			return 0;
		}
		for(int i=t-1;i>=1;i--)
		{
			if(b==true&&x[i]=='0'&&x[i+1]=='0') continue;
			else 
			{
				b=false;
				cout<<x[i];
			}
		}
	}
}
2023/6/26 18:24
加载中...