http://210.38.224.114:808/JudgeOnline/problem.php?id=1268
Description
大家应该很熟悉我们学院的题库了吧?题库由创建至今已经已有162道题目,将近500个注册账号。现在老师请你帮忙统计每个注册账号的做题情况,做成一个excel表格。这可让你犯愁了:excel中每一列的列名是用字母命名的,而题库中的题号是用数字命名的。一百多道题目,怎么将数字跟列名对上号呢?你决定写一个程序解决这个问题。
注:excel中,列名用字母表示。A代表第一列,B代表第二列……Z代表第26列,AA代表第27列,AB代表第28列,依此类推。
Input
第一行一个整数T,表示测试数据个数。接下来T行,每行一个整数n(n不超过int范围),表示列数。
Output
每组数据输出结果占一行,为第n列对应的列名。
Sample Input
2225
Sample Output
BY
因为0没有东西,所以,在27或者0时会产生误解,但是,0时一定还是z
#include<stdio.h>
#include<iostream>
#include <cstring>
using namespace std;
int main()
{
int n,m,i,j,f,p;
char a[200];
scanf("%d",&m);
while(m--)
{
scanf("%d",&n);
i=0;
p=0;
if(n<0)
{
p=-1;
n=-n;
}
while(n>0)
{
f=n%26;
if(f==0)
f=26;
a[i]=f-1+'A';
i++;
n=(n-f)/26;
}
a[i]='\0';
int len=strlen(a);
for (int i=len-1;i>=0;i--)
{
cout<<a[i];
}
cout<<endl;
}
}