80分

P1914 小书童——凯撒密码

zcy30 @ 2024-07-18 15:16:13

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    int n;
    cin>>n;
    n%=26;
    string s;
    cin>>s;
    for(int i=0;i<s.size();i++)
    {
        char a=s[i];
        a+=n;
        a=char(a);
        if(a>'z')a-=26;
        if(a<'a')a+=26;
        a=char(a);
        cout<<a;
    }
}

各位

大佬帮帮忙吧


by wangif424 @ 2024-07-18 15:41:35

@zcy30

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    int n;
    cin>>n;
    n%=26;
    string s;
    cin>>s;
    for(int i=0;i<s.size();i++)
    {
        int a=s[i];
        a+=n;
        if(a>'z')a-=26;
        if(a<'a')a+=26;
        cout<<char(a);
    }
}

char 可以理解成 8 位整形,你在做加减操作时导致了溢出。


|