删前导零把结果把所有数全删了...
查看原帖
删前导零把结果把所有数全删了...
1408705
mkd123楼主2024/9/19 22:02
#include <iostream>
#include <string>
using namespace std;
string qiandaoling(string a){
    for(int i=0;i<a.length();++i){
        if(a[i]=='0'){
            a.erase(i);
            --i;
        } else{
            break;
        }
    }
    return  a;
}
string inten(string a) {
    string b = "";
    for (int i = 0; i < a.length(); ++i) {
        b += a[a.length() - 1 - i];
    }
    return b;
}

string fenxiao(string a, string b, char r) {
    b= qiandaoling(b);
    string c = qiandaoling(inten(a));
    string d = inten(b);
    if(r=='/'){
        d= qiandaoling(d);
    }
    string k = c + r + d;
    return k;
}

string percentl(string a) {
    string b = qiandaoling(inten(a));
    b.append("%");
    return b;
}

int main() {
    string a;
    getline(cin, a);
    int typel = 0;
    char mid = '/';
    string p, q;
    if (a[a.length() - 1] == '%') {
        typel = 1;
        a.pop_back();
    } else {
        for (int i = 0; i < a.length(); ++i) {
            if (a[i] == '/' || a[i] == '.') {
                typel = 2;
                mid = a[i];
                p = a.substr(0, i);
                q = a.substr(i + 1);
                break;
            }
        }
    }
    if (typel == 0) {
        cout << qiandaoling(inten(a));
    } else if (typel == 1) {
        cout << percentl(a);
    } else {
        cout << fenxiao(p, q, mid);
    }
    return 0;
}
2024/9/19 22:02
加载中...