求救!90分,#7#8 WA
查看原帖
求救!90分,#7#8 WA
123507
lucasbj楼主2023/11/13 17:15
#include<iostream>
#include<string>
using namespace std;
string strreverse(string b)
{
	if(b[0]=='0'&&b.length()==1)
		return b;
	if(b[0]=='-')
	{
		string d;
		d.clear();
		d+='-';
		d+=strreverse(b.substr(1,b.length()-1));
		return d;
	}
    string c;
    c.clear();
    int k=b.length()-1;
    while(b[k]=='0')
        k--;
    for(int i=k;i>=0;i--)
        c+=b[i];
    return c;
}
string percentage(string b,int f)
{
    string ans;
    ans.clear();
    ans+=strreverse(b.substr(0,f))+'%';
    return ans;
}
string decimal(string b,int f)
{
	string ans;
	ans.clear();
	ans+=strreverse(b.substr(0,f))+'.'+strreverse(b.substr(f+1,b.length()-f-1));
	return ans;
	
}
string ratio(string b,int f)
{
	string ans;
	ans.clear();
	ans+=strreverse(b.substr(0,f))+'/'+strreverse(b.substr(f+1,b.length()-f-1));
	return ans;
	
}
int main()
{
    string a;
    int flag=0;
    cin>>a;
    for(int i=0;i<a.length();i++)
    {
        switch(a[i])
        {
            case '%':
            {
                cout<<percentage(a,i);
                flag=1;
                break;
            }
            case '.':
            {
                cout<<decimal(a,i);
                flag=1;
                break;
            }
            case '/':
            {
                cout<<ratio(a,i);
                flag=1;
                break;
            }
        }
        if(flag==1)
        break;
    }
    if(flag==0)
        cout<<strreverse(a);
    return 0;
}
2023/11/13 17:15
加载中...