1.4 字符串
题目要求:按EXCEL的序A~Z,AA~ZZ,...将给定正整数转化为此序列
i.e: 1 ..... A,
2.....B,
26......Z,
27.......AA.
public String convertToTitle(int n) {
String ret = "";
while(n > 0)
{
ret = (char)((n-1)%26+'A') + ret;
n = (n-1)/26;
}
return ret;
}
这道很简单的题耗费了我很久的时间,原因在于进制搞不清楚,首先这应该是一个26进制的算法问题,因为每一位有26个不同的数A~Z,就像10进制数有0~9,10个数,2进制有0~1,两个数一样。唯一迷惑的就是这个26进制位是1 ~ 26,26个数,实际操作与10进制转26进制没有区别,你可以把1~26看成0~25,实现的方法就是将n减去一(不管是取余数,还是自除)。