潇潇暮雨寒z @ 2021-10-10 22:05:14
为什么在本地测是对的,交上去只有40分?
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
string a;
cin>>n>>a;
n%=26;
int len=sizeof(a);
for(int i=0;i<=len;i++){
if(a[i]+n>'z'){
a[i]+=n;
a[i]-=26;
}
if(a[i]+n<'a'){
a[i]+=n;
a[i]+=26;
}
if(a[i]+n<='z' && a[i]+n>='a'){
a[i]+=n;
}
}
cout<<a;
return 0;
}
by wanggk @ 2021-10-10 22:13:05
循环的那行改为:
for(int i=0;i<len;i++)
注意是小于号,不是小于等于
中间一定要用 else if
,不然假设第一个
if(a[i]+n>'z'){
a[i]+=n;
a[i]-=26;
}
else if(a[i]+n<'a'){
a[i]+=n;
a[i]+=26;
}
else if(a[i]+n<='z'&&a[i]+n>='a'){
a[i]+=n;
}
by wanggk @ 2021-10-10 22:13:54
@潇潇暮雨寒z 这样应该能对,格式丑见谅
by 潇潇暮雨寒z @ 2021-10-12 20:56:26
@wanggk王冠龛 已经改过了,还是40分欸
by 潇潇暮雨寒z @ 2021-10-12 21:57:24
现在发现开了O2就能AC,不开O2三个RE两个AC
by wanggk @ 2021-10-13 20:48:23
@潇潇暮雨寒z 神奇的O₂啊
话说是不是a[i]+=n;
加完超了的关系(蒟蒻盲猜)