省赛第一题

题目大意,数字转换(26)注意细节数字到字母时 要特别注意整除的情况

加个公式处理数字到字母  (n-1)%26+1;n=(n-1)/26;

题目链接:http://59.69.128.200/JudgeOnline/problem.php?pid=303

View Code
1 #include <iostream>
2 #include <cstring>
3 usingnamespace std;
4 int main()
5 {
6 int i,j,n,len,k,sum,m;
7 char a[1000];
8 char b[1000];
9 char c;
10 cin>>n;
11 while (n--)
12 {
13 cin>>a;
14 sum=0;
15 len=strlen(a);
16 if(a[0]<='Z'&&a[0]>='A')
17 {
18 for (i=len-1;i>=0;i--)
19 { m=(a[i]-'A'+1);
20 for(j=1;j<len-i;j++)
21 m=m*26;
22 sum+=m;
23 }
24 cout<<sum;
25 }
26 else
27 {
28 m=0;
29 for (i=len-1;i>=0;i--)
30 { m=(a[i]-'0');
31 for(j=1;j<len-i;j++)
32 m=m*10;
33 sum+=m;
34 }
35 k=0;
36 while (sum>26)
37 {
38 m=sum%26;
39 if(m==0){
40 c=m+'0'+42;
41 sum=sum/26-1;
42 }
43 else
44 {c=m+'0'+16;
45
46 sum=sum/26; }
47 b[k++]=c;
48 }
49 c=sum+'0'+16;
50 b[k]=c;
51 for (i=k;i>=0;i--)
52 {
53 cout<<b[i];
54 }
55 }
56 cout<<endl;
57 }
58 return0;
59 }
posted @ 2011-05-24 18:44  我们一直在努力  阅读(175)  评论(0编辑  收藏  举报