Excel单元格的地址表示很有趣,它使用字母来表示列号。
比如,
A表示第1列,
B表示第2列,
Z表示第26列,
AA表示第27列,
AB表示第28列,
BA表示第53列,
…
当然Excel的最大列号是有限度的,所以转换起来不难。
如果我们想把这种表示法一般化,可以把很大的数字转换为很长的字母序列呢?
本题目既是要求对输入的数字, 输出其对应的Excel地址表示方式。
例如,
输入:
26
则程序应该输出:
Z
再例如,
输入:
2054
则程序应该输出:
BZZ``
#include<stdio.h>
#include<string.h>
int main()
{
int n,i=0,j=0,t,c;
char a[10];
scanf("%d",&n);
while(n>0)
{
if(n%26==0)
{ t=26;
a[i++]='A'+t-1;
n=n/26-1;
}
else {
t=n%26;
a[i++]='A'+t-1;
n=n/26;}
}
c=strlen(a);
for(j=c-1;j>=0;j--)
printf("%c",a[j]);
return 0;
}