90分求调
查看原帖
90分求调
868776
ShaJang楼主2024/8/30 10:28

90分,#6,#20

#include <bits/stdc++.h>
#define int long long
using namespace std;
string s;
void zhenshuf(string s){
    reverse(s.begin(),s.end());
    bool flag=0;
    for(int i=0;i<s.size();i++){
        if(s[i]!='0'){
            cout<<s[i];
            flag=1;
        }
        if(s[i]=='0'&&flag)cout<<s[i];
    }
    if(s=="0")cout<<0;
}
void zhenshuf2(string s){
    reverse(s.begin(),s.end());
    string ans=s;
    bool flag=0;
    for(int i=ans.size()-1;i>=1;i--){
        if(ans[i]!='0'){
            cout<<ans[i];
            flag=1;
        }
        if(ans[i]=='0'&&flag)cout<<ans[i];
    }
    if(ans=="0")cout<<"0";
}
void xiaoshuf(string s,int dianwei){
    string s1=s.substr(0,dianwei);
    zhenshuf(s1);
    cout<<'.';
    string s2=s.substr(dianwei+1,s.size()-dianwei);
    zhenshuf2(s2);
}
void fenshuf(string s,int gangwei){

    string s1=s.substr(0,gangwei);
    zhenshuf(s1);
    cout<<'/';
    string s2=s.substr(gangwei+1,s.size()-gangwei+1);
    zhenshuf(s2);
}
void baifenshuf(string s){
    reverse(s.begin(),s.end());

    bool flag=0;
    for(int i=0;i<s.size();i++){
        if(s[i]!='0'&&s[i]!='%'){
            cout<<s[i];
            flag=1;
        }
        if(s[i]=='0'&&flag)cout<<s[i];
    }
    cout<<'%';
}

signed main(){
    cin>>s;
    int f=s.find('/');
    int x=s.find('.');
    int b=s.find('%');
    if(f!=-1)fenshuf(s,f);
    else if(x!=-1)xiaoshuf(s,x);
    else if(b!=-1)baifenshuf(s);
    else zhenshuf(s);
    return 0;
}

调者有赏(互关)

2024/8/30 10:28
加载中...