前言
正文
思路
見代碼註釋
參考題解
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
/*
首先用字符串讀入A,B,用len記錄二者較長的長度,再使用reverse函數(在algorithm頭文件裏)
對A和B進行翻轉,遍歷每一字符,按照題意進行計算加密後的每一位存入字符串res中,
再將字符串翻轉後輸出即可
*/
int main(){
string a,b,res;
cin>>a>>b;
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
int lenA=a.size(),lenB=b.size();
int len=lenA>lenB?lenA:lenB;//取較長的
for(int i=0;i<len;i++){
int x,y;
//字符數字轉整型數字,注意此處的技巧相應位數沒有字符的話就爲0
x=i<lenA?a[i]-'0':0;
y=i<lenB?b[i]-'0':0;
if(i%2==0){//奇數位
int temp=(x+y)%13;
if(temp==10)res+='J';
else if(temp==11)res+='Q';
else if(temp==12)res+='K';
else res+=temp+'0';
}else{//偶數位
int temp=y-x;
if(temp<0)temp+=10;
res+=temp+'0';
}
}
reverse(res.begin(),res.end());
cout<<res<<endl;
return 0;
}