题解 | 简单密码:字符的循环平移问题,注意输入格式

#include <iostream>
#include <string>
using namespace std;

int main() {
    string s;
    while (getline(cin,s)) {
        if(s=="START"||s=="END")  //终止本次循环
        {
            continue;
        }
        else if(s=="ENDOFINPUT")  //终止整个循环
        {
            break;
        }
        else
        {
            for(int i=0; i<s.size(); i++)
            {
                if('A'<=s[i]&&s[i]<='Z')
                {
                    s[i]=(s[i]-'A'-5+26)%26+'A';  
/*
由密文解明文,s[i]-'A' 将字符转为从0开始的偏移量,减去5,然后通过 % 26 保证结果在0到25之间,最后加上 'A' 转回字母。
*/
                }
            }
            cout << s;
        }
    }
}

#考研复试机试上机个人解析##考研#
全部评论

相关推荐

翱翔龙骑:耗材的幻想
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务