有史以来最困难的问题

时间限制:2000 / 1000ms(Java /其他)内存限制:65536 / 32768K(Java /其他)
提交总数:45接受提交:28
问题描述
朱利叶斯·凯撒(Julius Caesar)生活在一个充满危险和阴谋诡计的时代。凯撒(Caesar)面临的最艰难的情况是保持自己的生命。为了使他生存,他决定创建第一个密码。这个密码非常好听,以至于没有人知道它是如何工作的,就无法解决。
您是凯撒大队的副队长。解密凯撒发送的消息并提供给您的将军是您的工作。代码很简单。对于纯文本消息中的每个字母,将其向右移动五个位置以创建安全消息(即,如果字母为“ A”,则密文为“ F”)。由于您是根据Caesar的消息创建纯文本,因此将执行相反的操作:

密文
BCDEFGHIJKLMNOPQRSTUV WXYZ

纯文本
VWXYZABCDEFGHIJKLMNOP QRSTU

在此密码中仅字母移动。任何非字母字符都应保持不变,并且所有字母字符均应为大写。

输入值
此问题的输入将包含(非空的)一系列多达100个数据集。每个数据集将根据以下描述进行格式化,并且没有空行分隔数据集。所有字符均为大写。单个数据集包含3个组成部分:起始行-一行,“ START”密码消息-包含从一到两百个字符(含两端)的一行,包括来自Caesar的一条消息结束线-一行,“ END”最终数据集之后是一行“ ENDOFINPUT”。

输出量
对于每个数据集,将只有一行输出。这是凯撒的原始讯息。

样本输入
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

资源
美国中南部2002

#include<stdio.h>
#include<string.h>
int main() {
	char a[200],b[200];
	char cc[1000];
	int bl1;
	for(;;){
		gets(a);
		if(strcmp(a,"ENDOFINPUT")==0)break;
		gets(cc);
		for(bl1=0;bl1<strlen(cc);bl1++){
			if('A'<=cc[bl1]&&cc[bl1]<='E'){
				cc[bl1]+=21;
			}else if('E'<cc[bl1]&&cc[bl1]<='Z'){
				cc[bl1]-=5;
			}
		}
		printf("%s\n",cc);
		gets(b);
	}
	return 0;
}

利用strcmp来判断结束,用strlen来判断长度,用gets(a/b)来储存开始和结束

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值