题目地址
解题思路
像正常的进制转换处理就行,但是需要注意的是对于像26这样的数字,输出的是Z,如果是真正的进制转换的话就是10了。因此每次取模完成后,要把取模后的数字给减去,并且如果得到的0,就要给变成26在减去。
AC代码
#include <iostream>
using namespace std;
char a[2000];
int main()
{
long long n;
int ans = 0;
cin >> n;
while (n)
{
int t = n % 26;
if (!t)
t = 26;
n = (n-t)/26;
a[ans++] = t;
}
for (int i=ans -1; i>=0; i--)
cout << char('A' + a[i] - 1);
cout << endl;
return 0;
}