原题:

Description

据说最早的 密码来自于罗马的凯撒大帝。消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第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 M 
原文字母: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

注意:只有字母会发生替换,其他非字母的字符不变,并且消息原文的所有字母都是大写的。

Input

最多不超过100个数据集组成,每个数据集之间不会有空行,每个数据集由3部分组成:

  1. 起始行:START
  2. 密码消息:由1到200个字符组成一行,表示凯撒发出的一条消息.
  3. 结束行:END

在最后一个数据集之后,是另一行:ENDOFINPUT

Output

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

Sample Input

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

Sample Output

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<stdio.h>
#include<string.h>
char map[]="VWXYZABCDEFGHIJKLMNOPQRSTU";
int main()
{char s[101];int i,j=10;while(1){gets(s);if(strcmp(s,"ENDOFINPUT")==0)break;gets(s);for(i=0; s[i]!='\0'; i++){if(s[i]>='A'&&s[i]<='Z')printf("%c",map[s[i]-'A']);elseprintf("%c",s[i]);}gets(s);printf("\n");}return 0;
}

转载于:https://www.cnblogs.com/xinyuyuanm/archive/2013/04/13/3019538.html

poj2975——Caesar密码相关推荐

  1. c++、python实现置换密码(栅栏技术,列置换)、替代密码(加法密码(Caesar密码),乘法密码)

    置换密码 代码如下: #置换密码 a = input('请输入明文:') print("逆序后的密文为:",a[::-1]) 结果如图: 代码如下: #栅栏技术(栏数为7) a = ...

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

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

  3. Caesar密码的生成与破解

    背景 在密码学中,恺撒密码(英语:Caesarcipher),或称恺撒加密.恺撒变换.变换加密,是一种最简单且最广为人知的加密技术.它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按 ...

  4. 单表代换密码之Caesar密码的代码实现

    单表代换密码之Caesar密码的代码实现 代码块 代码块语法遵循标准markdown代码,例如: from operator import mod #ceasar加密算法 def ceasarC(a) ...

  5. HDU密码学-Caesar密码(Java实现)

    一.实验名称: Caesar密码实验 二.实验要求: 1.了解古典密码的几种分类. 2.掌握Caesar密码的加减密原理. 3.运用IntelliJ IDEA实现Caesar密码程序. 三.实验内容: ...

  6. caesar解密_C和C ++中的Caesar密码[加密和解密]

    caesar解密 Get program for caesar cipher in C and C++ for encryption and decryption. 获取用于C和C ++的凯撒密码的程 ...

  7. caesar加密_如何编写Caesar密码:基本加密简介

    caesar加密 by Brendan Massey 由布伦丹·梅西(Brendan Massey) The Caesar Cipher is a famous implementation of e ...

  8. 简单密码(Caesar密码)--C++实现

    题目描述 Julius Caesar曾经使用过一种很简单的密码. 对于明文中的每个字符,将它用它字母表中后5位对应的字符来代替,这样就得到了密文. 比如字符A用F来代替.如下是密文和明文中字符的对应关 ...

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

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

最新文章

  1. 大学mysql教程_MYSQL教程:新手该看的MYSQL操作
  2. C++二维数组动态申请内存
  3. (转载)FPGA基础知识------PS/2基础知识
  4. java ftp主动模式和被动模式_ftp主动模式和被动模式
  5. 线性回归与 logistic回归
  6. 《精通ASP.NET MVC 3框架》译者序
  7. 社交网络营销之制订“参与社交网络的规则”
  8. 音视频开发(15)---IPC+NVR+路由器+ffmpeg+nginx实现网页/Android/IOS的HLS直播
  9. 真实的用户,真实的中国互联网
  10. ×××数据库导数据ora-01400错误小计
  11. 我去头条面试,面试官问我如何设计好API,看看我是如何吊打面试官的!
  12. with ...as ...
  13. UnityShader27:屏幕雾效
  14. 结构化数据传输协议xml、json、protobuf比较
  15. socks5协议(rfc1928)
  16. phpstudy以及DVWA安装使用
  17. 转载:程序员必备的8个学习工具
  18. Ubuntu 视频播放器,弃用SMplayer,选择MPV
  19. android glide面试题,Android面试:80%的面试官关于Glide都会问这几个问题!【建议收藏】...
  20. Node.js(二)

热门文章

  1. java 1.6u29 下载_jdk1.6 64位下载|JDK 6(Java SE Development Kit)下载6u43 64位官方版_java运行环境 IT猫扑网...
  2. python爬虫 库_七款必备的Python爬虫库,你知道几个?
  3. 转载 | pymysql.err.InterfaceError: (0, ‘‘)解决办法
  4. AngularJS中的表达式
  5. 制作两个字符串字谜的最小步骤数
  6. 第五章 染料结构对染色性能的影响单元测验
  7. 二叉排序树(Binary Sort Tree) 又称为二叉查找树(Binary Search Tree) - (代码、分析)
  8. VisualStudio2019配置OpenCV
  9. [读书笔记][golang]《go语言-云动力》
  10. uva 11269——Setting Problems