求救!数字反转升级版7,8WA,单日下载次数已用完。
  • 板块题目总版
  • 楼主lucasbj
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/11/13 17:28
  • 上次更新2023/11/13 19:47:32
查看原帖
求救!数字反转升级版7,8WA,单日下载次数已用完。
123507
lucasbj楼主2023/11/13 17:28
#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>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:28
加载中...