lanqinglian @ 2019-02-19 15:13:57
#include<bits/stdc++.h>
using namespace std;
int n;
string s;
int main(){
cin>>n>>s;
while(n>26){
n-=26;
}
for(int i=0;i<s.size();i++){
s[i]+=n;
if(s[i]>'z') s[i]-=26;
}
for(int i=0;i<s.size();i++){
cout<<s[i];
}
return 0;
}
by aminoas @ 2019-02-19 15:27:02
用+n会爆汉字码,要用-n。
@lanqinglian
我不是大佬
by pigstd @ 2019-02-19 15:29:52
是的
by lanqinglian @ 2019-02-19 15:35:03
@2018J1605
谢谢!这是AC代码
#include<bits/stdc++.h>
using namespace std;
int n;
string s;
int main(){
cin>>n>>s;
while(n>26){
n-=26;
}
n=26-n;
for(int i=0;i<s.size();i++){
s[i]-=n;
if(s[i]<'a') s[i]+=26;
}
for(int i=0;i<s.size();i++){
cout<<s[i];
}
return 0;
}
但为什么+n不行,道理不是一样吗
by aminoas @ 2019-02-19 15:41:35
汉字码会爆掉(指输出汉字,不是
@lanqinglian
by lanqinglian @ 2019-02-19 15:49:26
@2018J1605
是不是不能超过ascii表上的?也就是最大127?
by aminoas @ 2019-02-19 15:55:53
@lanqinglian是的,不然会输出类似“噜噜噜噜噜噜噜噜噜噜噜噜”一类的东西...(滑稽)
by lanqinglian @ 2019-02-19 19:12:28
@2018J1605
好的,谢谢