题目:
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
解决方案:
public class Solution { public String convertToTitle(int n) { //char a[26]={'A','B} String s = ""; String res = ""; while(n > 0){ n--; //s = n%26 + s; res = (char)(n%26+'A') + res; n = n/26; } return res; } }
总结:这个题目最初做的时候就立马反应到是26进制与10进制的转换,但是不单单如此,最后还有个小细节,那就是这里的n--; 这里用n--的主要原因是后面要"+'A'"这一步,要是不去n--,而是在“+'A'”这里用+64,那么结果是不对的,因为会有%26后得0的情况。这样+64得到的是“@”而不是“A”,所以要用n--来解决这个问题。这个地方对应的例子是输入26得到的结果应该是"Z",而用+64得到的是“A@”.