Giả sử có một số nguyên dương; ta phải tìm tiêu đề cột tương ứng như trong bảng tính. Vậy [1: A], [2: B], [26: Z], [27: AA], [28: AB] v.v.
Vì vậy, nếu đầu vào là 29, đầu ra sẽ là AC.
Để giải quyết, ta làm theo các bước sau:
- khi n khác 0, làm:
- n := n - 1
- res := res + n mod 26 + ASCII của 'A'
- n := n / 26
- đảo ngược mảng res
- trả về res
Hãy xem triển khai sau để hiểu rõ hơn:
Ví dụ
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
string convertToTitle(int n) {
string res;
while(n) {
res += (--n) % 26 + 'A';
n /= 26;
}
reverse(res.begin(), res.end());
return res;
}
};
int main() {
Solution ob;
cout << (ob.convertToTitle(30));
return 0;
}
Đầu vào
30
Đầu ra
AD