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注:包含了171Excel Sheet Column Number,titleToNumber函数是Excel Sheet Column Number的方法,convertToTitle是本题的方法
#include<stdio.h>
#include<stdlib.h>
int titleToNumber(char *s) {
int i,j;
int res = 0;
for(i = 0; s[i] != '\0'; i++){
j = s[i] - 'A' + 1;
res = 26 * res + j;
//printf("%d,%d\n", j, res);
}
return res;
}
char *convertToTitle(int n) {
int i = 0, j, k, size;
char *title=(char *)malloc(sizeof(char) * 10000);
char tmp;
for(j = n; j != 0; i++){
k = j % 26;
if(k == 0) {
title[i] = 'Z';
j--;
}
else
title[i] = 'A' + k - 1;
j = j/26;
}
title[i] = '\0';
size = i;
for(i = 0, j = size -1; i < j; i++, j--){
tmp = title[i];
title[i] = title[j];
title[j] = tmp;
}
return title;
}
void main(){
char *s = "AAA";
int d = titleToNumber(s);
printf("%d\n", d);
printf("%s\n", convertToTitle(d));
}