题解 | #简单密码#

简单密码

https://www.nowcoder.com/practice/ff99c43dd07f4e95a8f2f5448da3772a

#include<iostream>
#include<string>

using namespace std;

//与上一题非常相似
//但可以用另外一种方式来求解这类循环平移的问题
//对字母执行减法操作后,再对(如果是往前倒加上字母个数26)并mod 26,便可得到答案。
//注意!!! 这道题是解密,所以是-5
int main() {
    string str;
    while (getline(cin, str)) { //getline返回的还是istream &  //起始行
        if (str == "ENDOFINPUT") {
            break;
        }
        getline(cin, str); //密文
        for (int i = 0; i < str.length(); i++) {
            if (str[i] <= 'Z' && str[i] >= 'A') {
                str[i] = (str[i] - 'A' - 5 + 26) % 26 + 'A';
            }
        }
        cout << str << endl;
        getline(cin,
                str);  //结束行,虽然这个没用,但是getline不接受空参数

    }
}
  1. 可以用取模完成循环
  2. 学习getline
  3. 注意这里是解密不是加密
全部评论

相关推荐

团子请爱我一次_十月...:不是戈门,干哪来了,这就是java嘛
点赞 评论 收藏
分享
09-28 01:10
中山大学 运营
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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