【问题描述】

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

思路:利用ASCII码进行转换。

记住:a的ASCII码为97,b为98......,A的ASCII码为65,B为66......;

#include<bits/stdc++.h>
using namespace std;
int main() {string start;string end;string ticle;//Z的ASCII为90while(1) {cin>>start;getchar();if(start=="ENDOFINPUT")break;getline(cin,ticle);cin>>end;for(int i=0; i<ticle.size(); i++) {if(ticle[i]>='A'&&ticle[i]<='Z') {//进行转换int sum=(int)ticle[i];//加密后的ASCII码sum-=5;if(sum<65) { //即小于Asum=90+sum-65+1;}cout<<char(sum);} else {cout<<ticle[i];}}cout<<endl;}return 0;
}

4.20. 恺撒Caesar密码相关推荐

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

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

  2. 4.20 恺撒Caesar密码

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

  3. 恺撒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. [转]linux tr命令详解
  2. 如何查看oracle数据库集群哪个节点正在使用,windows oracle 怎么查看集群状态
  3. js(javascript)与OC(Objective-C)交互
  4. 中小企业如何巧用大数据?
  5. python flask与django的区别_真正搞明白Python中Django和Flask框架的区别
  6. 工作的未来:敏捷人士瑞典大会上午议程回顾
  7. boost::all_clustering_coefficients用法的测试程序
  8. js截取最后一个斜杠之后的内容
  9. There was a problem importing one of the Python modules required to run yum
  10. sql server安装记
  11. python初学者编程指南_动态编程初学者指南
  12. Windows10如何彻底卸载MySQL
  13. tomcat日志设置与详解
  14. python可视化分析网易云音乐评论_网易云音乐评论 可视化分析
  15. (一)WLAN定义和基本架构
  16. mysql opened tables_MySQL_MySQL性能优化之Open_Table配置参数的合理配置建议,在MySQL数据库中,Opened_tables表 - phpStudy...
  17. GB28181系列笔记-语音对讲功能
  18. 两家“国网”合建5G,三大运营商“好日子到头”?
  19. LazyBrush论文笔记(4):问题建模-平滑项与数据项
  20. OpenLDAP+freeradius+samba+802.1x实现无线和有线网络认证+动态vlan下发——openLDAP篇

热门文章

  1. 耳朵财经要闻|民政部:利用区块链技术增强公益组织的透明度;香港区块链协会联合会长:区块链给企业带来新的沟通和融资模式...
  2. iptables详解及应用(史上最全)
  3. 安装Windows、Ubuntu双系统超简单实用教程
  4. npoi css,NPOI 扩展:NPOI.CSS_html/css_WEB-ITnose
  5. Android高德地图功能总结
  6. 仍冀盼着能有缘相见,所以万有的实相
  7. (自营)独家新款壁纸/头像/表情包小程序上线超炫裂变超强支持投稿+视频教程,云开发
  8. U盘重装win10(一)下载系统镜像
  9. 如何建立条码标签上的群组
  10. php@unlink删除文件失败原因