excel 地址
8题 excel 地址 时间限制:1.0s 内存限制:256.0MB 问题描述 Exce濿 单元格的地址表示很有趣,它使用字母来表示列号。 比如, A 表示第 1 列, B 表示第 2 列, Z 表示第 26 列, AA 表示第 27 列, AB 表示第 28 列, BA 表示第 53 列,
.... 当然 Exce濿 的最大列号是有限度的,所以转换起来不难。 如果我们想把这种表示法一般化,可以把很大的数字转换为很长的字母序列 呢? 本题目即是要求对输入的数字, 输出其对应的 Exce濿 地址表示方式。
样例输入 26 样例输出 Z 样例输入 2054 样例输出 BZZ
就是26进制
#include<stdio.h>
#include<math.h>
int main()
{
int r;
char sc;
int z=27;
int i=0;
int x;
char y;
char b[26]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','v','W','X','Y','z'};
scanf("%d",&r);
int e=r;
if(r>26&&z>26)
{
z=x/26;
r=r/26;
i++;}//求最高次幂i//
x=i;
int a[i];
while(i>=0)
{
a[i]=e/pow(26,i);
int s=pow(26,i);
e=e-a[i];
i--;
}//求每一位的数字//
while(x>=0)
{
z=b[a[i]];//转换成字母//
printf("%c",z);
x--;
}
}
好像出了点问题。