给定一个正整数,返回它在 Excel 表中相对应的列名称。
例如,
1 -> A
2 -> B
3 -> C
...
26 -> Z
27 -> AA
28 -> AB
...
示例 1:
输入: 1 输出: "A"
示例 2:
输入: 28 输出: "AB"
示例 3:
输入: 701 输出: "ZY"
char* convertToTitle(int n) {
//减一除26取余,直接预先分配一个足够大的空间
int x;
char *s,a;
int size = 10;
s = (char *)malloc(size * sizeof(char));
int i = 0;
if(n <= 26)
{
s[0] = n + 64;
return s;
}
while(n){
x = (n - 1) % 26;
s[i++] = x + 65;
n = (n - 1)/26;
}
int len = strlen(s);
for(int i = 0; i < len/2; i++)
{
a = s[i];
s[i] = s[len-1-i];
s[len-1-i] = a;
}
return s;
}
本文介绍了一种将正整数转换为Excel表格中对应列名的算法实现。通过递归除26取余的方式,将数字映射到A-Z的字母上,实现了从1到无穷大数字的列名转换,如1->A, 26->Z, 27->AA等。
410

被折叠的 条评论
为什么被折叠?



