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;
}