社区讨论

壶关

P1553数字反转(升级版)参与者 5已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@miqzrbv1
此快照首次捕获于
2025/12/04 13:24
3 个月前
此快照最后确认于
2025/12/04 13:39
3 个月前
查看原帖
C
#include <bits/stdc++.h>

using namespace std;

string s;
string flag = "zhengshu";
int main () {
    cin >> s;
    int len = s.size();
    for (int i = 0; i < len; i++) {
        if (s[i] == '.') {
            flag = "xiaoshu";
        }
        if (s[i] == '/') {
            flag = "chu";
        }
        if (s[i] == '%') {
            flag = "baifen";
        }
    }
    if (flag == "zhengshu") {
        for (int i = len - 1; i >= 0; i--) {
            cout << s[i];
        }
        return 0;
    }
    if (flag == "xiaoshu") {
        string left = "", right = "";
        bool flag = true;
        for (int i = 0; i < len; i++) {
            if (s[i] == '.') {
                flag = false;
                continue;
            }
            if (flag == true) {
                if (s[i] != '0') {
                    left += s[i];
                }
            }
            if (flag == false) {
                if (s[i] != '0') {
                    right += s[i];
                }
            }
        }
        for (int i = left.size() - 1; i >= 0; i--) {
            cout << left[i];
        }
        cout << ".";
        for (int i = right.size() - 1; i >= 0; i--) {
            cout << right[i];
        }
        return 0;
    }
    if (flag == "chu") {
        string left = "", right = "";
        bool flag = true;
        for (int i = 0; i < len; i++) {
            if (s[i] == '/') {
                flag = false;
                continue;
            }
            if (flag == true) {
                if (s[i] != '0') {
                    left += s[i];
                }
            }
            if (flag == false) {
                if (s[i] != '0') {
                    right += s[i];
                }
            }
        }
        for (int i = left.size() - 1; i >= 0; i--) {
            cout << left[i];
        }
        cout << "/";
        for (int i = right.size() - 1; i >= 0; i--) {
            cout << right[i];
        }
        return 0;
    }
    if (flag == "baifen") {
        string ans = "";
        for (int i = 0; i < s.size() - 1; i++) {
            ans += s[i];
        }
        for (int i = ans.size() - 1; i >= 0; i--) {
            if (ans[i] != '0') {
                cout << ans[i];
            }
        }
        cout << '%';
        return 0;
    }
}

回复

5 条回复,欢迎继续交流。

正在加载回复...