POJ_3749破译密码

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

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

 

 
  
1 #include < iostream >
2 #include < string >
3 #include < stdio.h >
4
5 using namespace std;
6
7 int main()
8 {
9 string miwen;
10 string tmp;
11 int i;
12 char ch;
13 while ( 1 )
14 {
15 getline(cin,tmp);
16 if (tmp == " START " )
17 {
18 getline(cin,miwen);
19 }
20 else if (tmp == " END " )
21 {
22 i = 0 ;
23 while ((miwen[i] != ' \0 ' ) && (i <= 199 ))
24 {
25 if (miwen[i] >= ' F ' && miwen[i] <= ' Z ' )
26 {
27 printf( " %c " ,miwen[i] - 5 );
28 }
29 else if (miwen[i] >= ' A ' && miwen[i] <= ' E ' )
30 {
31 printf( " %c " ,miwen[i] + ' V ' - ' A ' );
32 }
33 else
34 {
35 printf( " %c " ,miwen[i]);
36 }
37 i ++ ;
38 }
39 printf( " \n " );
40 }
41 else if (tmp == " ENDOFINPUT " )
42 {
43 break ;
44 }
45 }
46 return 1 ;
47 }

转载于:https://www.cnblogs.com/moupeng/archive/2010/10/02/1841266.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值