万能公式
2023-10-29 12:49:03
发布于:浙江
13阅读
0回复
0点赞
明文字母 = (密文字母-'A' - (密钥字母 - 'A') + 26 ) % 26 + A
#include <iostream>
using namespace std;
//明文字母 = (密文字母-'A' - (密钥字母 - 'A') + 26 ) % 26 + A
//(c[j]-'A'-(k[i]-'A')+26)%26+'A'
#include <cstring>
int main(){
string k = "",s = "";
bool a[1000] = {};
cin >> k >> s;
//0:A,1:a;存储大小写
for(int i = 0;i < s.length();i++){
if(s[i] >= 'A' && s[i] <= 'Z'){
a[i] = false;
}else{
a[i] = true;
}
}
for(int i =0;i < k.length();i++){
if(k[i] >= 'a' && k[i] <= 'z'){
k[i]-=32;
}
}
while(k.length() <= s.length()){
k += k;
}
for(int i = 0;i < s.length();i++){
if(s[i] >= 'a' && s[i] <= 'z'){
s[i]-=32;
}
}
string res = "";
for(int i = 0;i < s.length();i++){
res += (s[i]-'A'-(k[i]-'A')+26)%26+'A';
}
for(int i = 0;i < res.length();i++){
if(a[i]){
res[i]+=32;
}
}
cout << res;
return 0;
}
这里空空如也
有帮助,赞一个