题目链接
题目大意
就是26进制,求ABCD+QWEE之类的
思路
看成普通的,用字符串直接做,又水了~~
代码
#include <iostream>
#include <string>
#include <vector>
#include <string.h>
#include <algorithm> //用max得加介个要不然编译错误。。
using namespace std;
const int maxn = 500;
int main()
{
string s1,s2;
char a[maxn];
char b[maxn];
char c[maxn];
while(cin>>s1>>s2)
{
for(int i=0; i<maxn; i++) //初始化
{
a[i] = 'A';
b[i] = 'A';
c[i] = 'A';
}
int l1 = 0,l2 = 0;
//到这来
for(int i=s1.length()-1; i>=0; i--)
{
a[l1++] = s1[i];
}
for(int i=s2.length()-1; i>=0; i--)
{
b[l2++] = s2[i];
}
int ll = max(l1,l2);
int i;
for(i=0; i<ll; i++)
{
c[i] = c[i]-'A'+a[i]-'A'+b[i]-'A'+'A'; //一定要每一个都-‘A’,要不然会出现一堆奇奇怪怪的汉字。。
//c[i] = c[i] + ...
// cout<<c[i]<<endl;
if(c[i]>'Z')
{
c[i] = c[i]-'Z'-1+'A';
c[i+1] = c[i+1]-'A'+'B' ;
// cout<<c[i+1]<<endl;
}
// cout<<c[i]<<endl;
}
int f = 0;
for(int k=i; k>=0; k--)
{
if(c[k]=='A' && f==0 && i!=0)
continue;
if(c[k]!='A')
f=1;
cout<<c[k];
}
cout<<endl;
}
return 0;
}