杭电题 2100 Lovekey
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2100
string方式:
#include<iostream>
#include<cstring>
using namespace std;
int main() {
string a, b;
while(cin >> a >> b) {
int lena = a.size();
int lenb = b.size();
int a1[210] = {
0 }, a2[210] = {
0 }, a3[210] = {
0 };
for (int i = lena - 1; i >= 0; i--) {
a1[lena-1-i] = a[i] - 'A';
}
for (int i = lenb - 1; i >= 0; i--) {
a2[lenb-1-i] = b[i] - 'A';
}
int k = 0;
for (int i = 0; i <=205; i++) {
a3[i] = (a1[i] + a2[i]+k) % 26;
k= (a1[i] + a2[i] + k) / 26;
}
int j= 205;
while (!a3[j])
j--;
for (; j >= 0; j--) {
printf("%c", 'A' + a3[j]);
}
cout << endl;
}
return 0;
}
char方式:
#include<iostream>
#include<cstring>
using namespace std;
int main() {
char a[210], b[210];
while(cin >> a >> b) {
int lena = strlen(a);
int lenb = strlen(b);
int a1[210] = {
0 }, a2[210] = {
0 }, a3[210] = {
0 };
for (int i = lena - 1; i >= 0; i--) {
a1[lena-1-i] = a[i] - 'A';
}
for (int i = lenb - 1; i >= 0; i--) {
a2[lenb-1-i] = b[i] - 'A';
}
int k = 0;
for (int i = 0; i <=205; i++) {
a3[i] = (a1[i] + a2[i]+k) % 26;
k= (a1[i] + a2[i] + k) / 26;
}
int j= 205;
while (!a3[j])
j--;
for (; j >= 0; j--) {
printf("%c", 'A' + a3[j]);
}
cout << endl;
}
return 0;
}