考场上做了0分,可能有睿智错误
解密
ROT13是一种简易的替换式密码。
字母表上共有26个字母,使用ROT13时,我们将字符替换为其向后数第13个字符,如果超过Z则再次回到字母表开头。对于数字和其它字符,ROT13并不会对其进行处理。
当然,我们也可以选择其他数字作为偏移量替换,如恺撒在加密时使用偏移量为3的加密方式,将 A替换为D,B替换为E。
在进行了加密后,小华觉得还不够安全,因此,他想让你帮他计算经过k次加密之后的字符串是什么。
数据范围
对于前10%的数据,k = 1
对于前30%的数据,∣s∣ <= 200对于另20%的数据,s只包含小写字母
对于另20%的数据, p = 13
对于100%的数据,∣s∣ <= 106 , 0 ≤ k ≤ 105 , 1 ≤ p ≤ 25
#include <bits/stdc++.h>
using namespace std;
string s;
int k,p;
int main(){
cin>>s;
cin>>k>>p;
for(int i=1;i<=k;i++){
for(int j=0;j<s.length();j++){
if(s[j]>='A' && s[j]<='Z'){
s[j]+=p;
if(s[j]>='Z'){
s[j]-=26;
}
}
if(s[j]>='a' && s[j]<='z'){
s[j]+=p;
if(s[j]>='z'){
s[j]-=26;
}
}
}
}
cout<<s;
}