题目:excel中的列数使用26个字母组合表示:
a b c ... y z aa ab ac ... az ba bb bc ... by bz ... ... zy zz aaa aab ......
1 2 3 ... 25 26 27 28 29 ... 52 53 54 55 ... 77 78 ... ... 701 702 703 704 ......
试编写一个算法,输入列数,输出对应的字母组合。例如:输入53,输出ba
#include<stdio.h>
#define NUM 100
int main()
{
int input = 0;
int i, j, k;
char output[NUM];
char tmp[NUM];
while (scanf("%d", &input) != EOF)
{
i = 0;
j = 0;
while (input > 0)
{
k = input % 26;
if (k == 0)
k = 26;
tmp[i] = (char)(k + 'a' - 1);
input = (input - k) / 26;
i++;
}
i--;
for (; i >= 0; i--, j++)
output[j] = tmp[i];
output[j] = '\0';
printf("%s\n", output);
}
return 0;
}