灾厄启示 @ 2021-09-05 19:50:57
#include<bits/stdc++.h>
using namespace std;
long long n;
string a;
int main(){
cin>>n>>a;
for(int i=0;i<a.size();i++){
a[i]+=n;
if(a[i]>'z'){
a[i]=(a[i]-'z')%26+96;
}
}
cout<<a;
}
by bsTiat @ 2021-09-05 20:16:03
@灾厄启示 你的a[i]加上n之后不一定在ascii码之内,所以要在计算过程中对结果取模,把中间三行去掉,改成
a[i]=(a[i]-'a'+n)%26+'a';
这样就不会超ascii码了
by 灾厄启示 @ 2021-09-06 22:12:11
多谢多谢,通了