60分,3、4点崩了,求大佬教教我

P1914 小书童——凯撒密码

灾厄启示 @ 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

多谢多谢,通了


|