题目描述

【问题描述】

Julius Caesar 生活在充满危险和阴谋的年代。为了生存,他首次发明了密码,用于军队的消息传递。假设你是Caesar 军团中的一名军官,需要把Caesar 发送的消息破译出来、并提供给你的将军。消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第5个字母替换(例如:消息原文中的每个字母A都分别替换成字母F),其他字符不 变,并且消息原文的所有字母都是大写的。 密码字母:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 原文字母:V W X Y Z A B C D E F G H I J K L M N O P Q R S T U

【输入形式】

最多不超过100个数据集组成。每个数据集由3部分组成:起始行:START 密码消息:由1到200个字符组成一行,表示Caesar发出的一条消息结束行:END 在最后一个数据集之后,是另一行:ENDOFINPUT

【输出形式】

每个数据集对应一行,是Caesar 的原始消息。

【样例输入】

START
NS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX
END
START
N BTZQI WFYMJW GJ KNWXY NS F QNYYQJ NGJWNFS ANQQFLJ YMFS XJHTSI NS WTRJ
END
START
IFSLJW PSTBX KZQQ BJQQ YMFY HFJXFW NX RTWJ IFSLJWTZX YMFS MJ
END
ENDOFINPUT
【样例输出】

IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSES
I WOULD RATHER BE FIRST IN A LITTLE IBERIAN VILLAGE THAN SECOND IN ROME
DANGER KNOWS FULL WELL THAT CAESAR IS MORE DANGEROUS THAN HE

代码

#include <bits/stdc++.h>
using namespace std;
int main(){string begin, end, cipher;map<char, char> Decode{{'A', 'V'}, {'B', 'W'}, {'C', 'X'}, {'D', 'Y'}, {'E', 'Z'}, {'F', 'A'}, {'G', 'B'}, {'H', 'C'}, {'I', 'D'}, {'J', 'E'}, {'K', 'F'}, {'L', 'G'}, {'M', 'H'}, {'N', 'I'}, {'O', 'J'}, {'P', 'K'}, {'Q', 'L'}, {'R', 'M'}, {'S', 'N'}, {'T', 'O'}, {'U', 'P'}, {'V', 'Q'}, {'W', 'R'}, {'X', 'S'}, {'Y', 'T'}, {'Z', 'U'}};while(cin >> begin && begin != "ENDOFINPUT"){getchar();getline(cin, cipher, '\n');cin >> end;for(int i = 0; i < (int)cipher.length(); i++){if(Decode.find(cipher[i]) != Decode.end())cout << Decode[cipher[i]];elsecout << cipher[i];}cout << '\n';}return 0;
}

如果对各位看官有帮助不妨留下一个点赞 ̄ω ̄=。

恺撒Caesar密码相关推荐

  1. 湖南大学21夏训练四20.恺撒Caesar密码

    [问题描述] Julius Caesar 生活在充满危险和阴谋的年代.为了生存,他首次发明了密码,用于军队的消息传递.假设你是Caesar 军团中的一名军官,需要把Caesar 发送的消息破译出来.并 ...

  2. 4.20. 恺撒Caesar密码

    [问题描述] Julius Caesar 生活在充满危险和阴谋的年代.为了生存,他首次发明了密码,用于军队的消息传递.假设你是Caesar 军团中的一名军官,需要把Caesar 发送的消息破译出来.并 ...

  3. 4.20 恺撒Caesar密码

    [问题描述] Julius Caesar 生活在充满危险和阴谋的年代.为了生存,他首次发明了密码,用于军队的消息传递.假设你是Caesar 军团中的一名军官,需要把Caesar 发送的消息破译出来.并 ...

  4. 古典密码算法 凯撒(Caesar)密码,又叫循环移位密码

    古典密码算法曾被广泛应用,大都比较简单,使用手工和机械操作来实现加密和解密.它的主要应用对象是文字信息,利用密码算法实现文字信息的加密和解密.下面介绍两种常见的具有代表性的古典密码算法,以帮助读者对密 ...

  5. Caesar(恺撒)密码加密解密-----Java实现

    Caesar密码是传统的代替加密法,当没有发生加密(即没有发生移位)之前,其置换表如1-1所示. 表1-1  Caesar置换表 a b c d e f g h i j k l m A B C D E ...

  6. c语言caesar密码编程,C语言程序设计#凯撒Caesar密码

    #include #include//颜色 using namespace std; int jiami(); int jiemi(); int main() { printf("***** ...

  7. 密码学之恺撒加密(03)

    恺撒加密 文章目录 恺撒加密 一.中国古代加密 二.外国加密 三.凯撒位移加密 四.凯撒加密和解密 五.频度分析法破解恺撒加密 密码棒 频率分析解密法 英文字母频率统计表: 以下是本篇文章正文内容 一 ...

  8. 题目 1214: 恺撒密码

    时间限制: 1Sec 内存限制: 128MB 题目描述:(原题链接) 恺撒生活在充满危险和阴谋的时代. 恺撒面对的最困难的问题是生存. 为了生存, 他决定创造一种密码. 这种密码听起来难以置信, 如果 ...

  9. Python 之恺撒密码加密算法

            恺撒密码(Caesar cipher),又称恺撒加密.恺撒变换.变换加密,是一种最简单且最广为人知的加密技术.它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个 ...

最新文章

  1. html文字中横线_谈PPT课件中自定义动画应用之内容控制
  2. linux开机关机命令
  3. CentOS 6.0安装JDK7
  4. 变量在内存中的值[c][code]
  5. wireshark最新版本for Ubuntu18.04(六)
  6. tensorflow Image 解码函数
  7. 关于BMZCTF hitcon_2017_ssrfme的解法
  8. Recover through incarnations: RMAN-20208
  9. 多项式函数插值:计算基本理论
  10. linux内核配置选项
  11. kuangbin 简单搜索 A 棋盘问题
  12. VS2010-MFC(Ribbon界面开发:为Ribbon Bar添加控件)
  13. Cocos Creator接入谷歌广告AdMob详细教程(原创)
  14. webpack入门使用教程
  15. OpenVINO之链接库
  16. 【算法导论-主定理】用主方法求解递归式 学练结合版
  17. 带着问题学 Kubernetes 抽象对象 Service 服务间调用
  18. 如何利用计算机按贴现率,净现值用计算机怎么算
  19. 不用带眼镜 东芝裸眼3D电视9个角度随便看
  20. tecplot入门实践案例

热门文章

  1. 奈奎斯特准则、比特率、波特率、码元……的逻辑链
  2. 在JSTL 中使用小型数据库 SQLite
  3. POI数据库的广泛应用(全国商户数据、社区数据、学校数据、医院数据等POI服务)
  4. CentOS7安装AutoJump以及zshrc修改主题
  5. 微信小程序 长按图片不出现菜单_小程序-长按保存图片
  6. PANet 实例分割
  7. 计算机设计基于Android实现高德地图校内导航出行app【项目源码+简要论文说明】
  8. Maya 三维软件破解 安装
  9. Python——面向对象三特征
  10. 文字颜色由左到右逐渐变色,简单做法