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
第一眼,看上去so easy,二十六进制转化么,果断下笔写代码,测试出错。仔细一看,还真是隐蔽。果断修改之,得出下面的代码。
1 string convertToTitle(int n) { 2 if(n<=0) 3 return ""; 4 string s; 5 while(n) 6 { 7 n--; 8 s.insert(s.begin(),(char)(n%26+'A')); 9 n=n/26; 10 } 11 return s; 12 }
然后去看别人怎么写的,大差不差,注意到别人用的static_cast<char>而不是向我这样直接转换(char),遂去查了下区别:
说是static_cast是新式的类型转换,会在编译阶段进行类型检查,鼓励代替c风格的强制类型转换。