请问dalao为什么#4过不去啊

P1914 小书童——凯撒密码

XXYNLY @ 2024-10-06 16:40:18

#include<iostream>
using namespace std;
int main() {
    string s;
    int ddd;
    cin >> ddd;
    int dd = (ddd+26) % 26;
    cin >> s;
    for (int i = 0; i < s.length(); i++) {
        s[i] = s[i] + dd;
        if (s[i] > 'z') 
            s[i] = ('a' + (s[i] % 'z')-1)%122;
    }
    cout << s;

    return 0;
}

by HerobrinePerssonZ @ 2024-10-13 20:01:47

@XXYNLY

看代码,带注释

#include <stdio.h>
int main()
{
    char in[100]; 
    int n, j; 
    scanf("%d%s", &n, in); //读入 
    for(j = 0; in[j] != '\0'; j++)
        putchar((in[j]-'a'+n)%26+'a'); 
    //in[j]-'a':读入中对应的第几个字母的位置,比如'a'对应0,'b'对应1,'c'对应2(0开始);
    //in[j]-'a'+n:读入中对应字母加上转移位数得到的字母的对应位置。
    //比如说'c'这个字母移动3位,就是第2个字母向右移动3个,就是第五个字母,即'f'
    //取余26是防止移动位数超过26导致炸掉
    //再加上'a',将对应位置还原成字母,再打出来 
}

你能加团or关注吗?


|