45分,求解
查看原帖
45分,求解
1111843
wangzhenshu楼主2024/8/27 15:15
#include<bits/stdc++.h>
using namespace std;
void p(string s,char q)
{
	string x,b;
	int t=0,k,sum=0,ans=0,s1=0,a=0;
	for(int i=0;i<s.size();i++)
	{
		if(s[i]!=q)
		{
			a++;
			x[a]=s[i];
			sum++;
		}
		else if(s[i]==q)
		{
			k=i;
			break;
		}
	}
	for(int i=k+1;i<s.size();i++)
	{
		b[t]=s[i];
		t++;
		ans++;
	}
	bool flag=false;
	for(int i=sum-1;i>=0;i--)
	{
		if(x[i]!='0')
		flag=true;
		if(flag)
		cout<<x[i];
	}
	cout<<q;
	if(q=='/')
	{
	for(int i=ans-1;i>=0;i--)
	{
		if(b[i]=='0')
		s1++;
		else 
		{
			ans=i;
			break;
		}
	}
	for(int i=ans;i>=0;i--)
	{
		cout<<b[i];
	}
}
else
{
	for(int i=0;i<ans;i++)
	{
		if(b[i]=='0')
		s1++;
		else break;
	}
	if(ans-1<s1)
	cout<<"0";
	for(int i=ans-1;i>=s1;i--)
	{
		cout<<b[i];
	}
}
}
int main()
{
	string s;
	cin>>s;
	if(s=="0")
	cout<<s;
	for(int i=0;i<s.size();i++)
	{
		if(s[i]=='.'||s[i]=='/')
		{
			p(s,s[i]);
			return 0; 
		}
	}
	int k=0,len=s.size();
	if(s[0]=='-')
	cout<<"-",k=1;
	if(s[s.size()-1]=='%')
	len--;
	bool flag=false;
	for(int i=len-1;i>=0;i--)
	{
		if(s[i]!='0')
		flag=true;
		if(flag)
		cout<<s[i];
	}
	if(len==s.size()-1)
	cout<<"%";
    return 0;
}
2024/8/27 15:15
加载中...