题目:
Given a positive integer, return its corresponding column title as appear in an Excel sheet.
For example:
1 -> A
2 -> B
3 -> C
...
26 -> Z
27 -> AA
28 -> AB
题意:
给定一个数字,将其转化成对应的英文字符。
此题与之前的一道题,Excel Sheet Column Title,很像,那题是关于给定一个字母,然后求这个字母对应的数字。这个数字的求法是26^(length-1) + 26^(length-2)+...,然后一直往下求。而这道题是那题的逆向,可以采用从末位开始计算,也就是首先用%运算符,然后逐层求,直到n为0为止。
public static String convertToTitle(int n)
{
StringBuilder sb = new StringBuilder();
while (n > 0)
{
int apd = n % 26;
char c;
if (apd == 0)
{
c = 'Z';
n = n / 26 - 1;
}
else
{
c = (char) (apd + 'A' - 1);
n = n / 26;
}
sb.append(c);
}
return sb.reverse().toString();
}