210718 加密的病历单

题目描述

小英是药学专业大三的学生,暑假期间获得了去医院药房实习的机会。

在药房实习期间,小英扎实的专业基础获得了医生的一致好评,得知小英在计算概论中取得过好成绩后,主任又额外交给她一项任务,解密抗战时期被加密过的一些伤员的名单。

经过研究,小英发现了如下加密规律(括号中是一个 "原文 -> 密文" 的例子)

  1. 原文中所有的字符都在字母表中被循环右移了三个位置( abz -> dec )
  2. 逆序存储(abcd -> dcba )
  3. 大小写反转(abXY -> ABxy)
输入格式

原文。(长度小于 50 且只包含大小写字母)

输出格式

输出加密后的字符串。

样例

样例输入

GSOOWFASOq
样例输出

Trvdizrrvj
数据范围与提示 分类标签

[字符串] [字符数组]

C++题解代码

#include <bits/stdc++.h>
using namespace std;

string a;
char b;
int c;
int d;
int e;


// The main procedure
int main() {
  cin>>a;
  c = (int)'A';
  d = (int)'a';
  for (int i = (a.size()-1); i >= 0; i--) {
    b = a[i];
    if ((b >= 'A') && (b <= 'Z')) {
      e = (((int)b+3)-c);
      e = (e%26);
      cout<<(char)(e+d);
    } else {
      e = (((int)b+3)-d);
      e = (e%26);
      cout<<(char)(e+c);
    }
  }
  return 0;
}

Blockly题解代码图片