省赛第一题
时间:2011-05-24 来源:我们一直在努力
题目大意,数字转换(26)注意细节数字到字母时 要特别注意整除的情况
题目链接:http://59.69.128.200/JudgeOnline/problem.php?pid=303
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int i,j,n,len,k,sum,m;
char a[1000];
char b[1000];
char c;
cin>>n;
while (n--)
{
cin>>a;
sum=0;
len=strlen(a);
if(a[0]<='Z'&&a[0]>='A')
{
for (i=len-1;i>=0;i--)
{ m=(a[i]-'A'+1);
for(j=1;j<len-i;j++)
m=m*26;
sum+=m;
}
cout<<sum;
}
else
{
m=0;
for (i=len-1;i>=0;i--)
{ m=(a[i]-'0');
for(j=1;j<len-i;j++)
m=m*10;
sum+=m;
}
k=0;
while (sum>26)
{
m=sum%26;
if(m==0){
c=m+'0'+42;
sum=sum/26-1;
}
else
{c=m+'0'+16;
sum=sum/26; }
b[k++]=c;
}
c=sum+'0'+16;
b[k]=c;
for (i=k;i>=0;i--)
{
cout<<b[i];
}
}
cout<<endl;
}
return 0;
}