/*做题时为数组开多大而犹豫了,10进制下数据最多才10位,
更别说26进制(写了个位数计算小程序,得位数为7
int N = 2147483647 ,cnt;
while(N){
N /= 26;
cnt++;
}
cout << cnt;
*/
/*还有就是 /26 还是/27的问题,10进制1位里0-9十个数,那26进制一位里也是26个数
写题时想着十进制个位最大为9,操作时是/10,
那26进制个位最大是26,操作时是不是要/27,
现在想起来真是觉得挺离谱的,模拟题没思路时每一个不确定的小细节都值得推敲,
进制转换方面的知识要好好的复习一下
*********************
注意点::
与常规进制转换不同的是,这道题进位后,原数还是进位前的状态没有改变
举例子
普通进制 9 + 1 = 10
该题进制 9 + 1 = 19
因此需要做一个进位判断
*/
完整ac代码
#include <iostream>
using namespace std;
int main(){
int t ;
cin >> t;
while(t--){
int cnt = 0,n,num[10];
cin >> n;
while(n){
num[++cnt] = n % 26;
n /= 26;
if(!num[cnt]){
num[cnt] = 26;
n--;
}
}
for(int i = cnt;i > 0;i --){
cout << char(num[i] + 'A' -1);
}
cout << endl;
}
return 0;
}