社区讨论

Wrong Answer on test 6

CF1BSpreadsheets参与者 2已保存回复 4

讨论操作

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

当前回复
4 条
当前快照
1 份
快照标识符
@mhjazak9
此快照首次捕获于
2025/11/03 23:36
4 个月前
此快照最后确认于
2025/11/03 23:36
4 个月前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;

int n;

int main(){
    cin >> n;
    while (n--){
        string s;
        cin >> s;
        if (s[0] == 'R' && s[1] >= '0' && s[1] <= '9'){
            int Y = 0;
            int posC = 0;
            for (int i = 1; i < s.size(); i++){
                if (s[i] == 'C'){
                    posC = i;
                    break;
                }
                Y = Y * 10 + s[i] - '0';
            }
            int X = 0;
            for (int i = posC + 1; i < s.size(); i++)
                X = X * 10 + s[i] - '0';
            string ans = "";
            while (X > 0){
                if (X % 26 == 0)
                    ans = 'Z' + ans;
                else
                    ans = (char)('A' + (X % 26 - 1)) + ans;
                X /= 26;
            }
            cout << ans << Y << endl;
        }
        else{
            int C = 0;
            int posD = 0;
            for (int i = 0; i < s.size(); i++){
                if (s[i] >= '0' && s[i] <= '9'){
                    posD = i;
                    break;
                }
                if (s[i] == 'Z')
                    C *= 26;
                else
                    C = C * 26 + s[i] - 'A' + 1;
            }
            cout << 'R';
            for (int i = posD; i < s.size(); i++)
                cout << s[i];
            cout << 'C' << C << endl;
        }
    }
    return 0;
}

回复

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

正在加载回复...