只求思路错在哪,不需贴代码
查看原帖
只求思路错在哪,不需贴代码
1373219
acommonman楼主2024/11/25 08:54
#include <bits/stdc++.h>
using namespace std;

void Reverse(int l,int r,string& a){
    string m=a.substr(l,r-l);
    a.erase(l,r);
    // cout<<a<<' '<<m<<'\n';
    for(int i=0;i<m.length()/2;i++)swap(m[i],m[m.length()-i-1]);
    // cout<<"m:"<<m<<"\n";
    int j=0;
    for(;m[j]=='0';j++){}
    a=a.insert(l,m,j,r-j);//返回的是插入后的结果
    // cout<<"a:"<<a<<'\n';
}

void Pd(string& a){
    if(find(a.begin(),a.end(),'.')!=a.end()){
        int l=a.find('.');
        
        //小数部分
        int id=a.length()-1;
        Reverse(l+1,a.length(),a);
        while(id>l&&a[id]=='0'){a.pop_back();id--;}
        //去除尾部0

        Reverse(0,l,a);//整数部分
    }else if(find(a.begin(),a.end(),'/')!=a.end()){//分数
        int l=a.find('/');
        Reverse(l+1,a.length(),a),Reverse(0,l,a);
    }else if(a.back()=='%'){//百分数
        Reverse(0,a.length()-1,a);
    }else{//整数
        Reverse(0,a.length(),a);
    }cout<<a;
}
string a;
int main()
{
    freopen("D:/VS_Code/.vscode/in.txt","r",stdin);
    freopen("D:/VS_Code/.vscode/out.txt","w",stdout);
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cin>>a;
    Pd(a);
}

75pts,问哪里错了?

2024/11/25 08:54
加载中...