HNU软件能力实训4-20. 恺撒Caesar密码

本文介绍了恺撒密码的加密原理,即每个字母替换为字母表中其后的第5个字母。博客提供了问题描述、输入输出格式、样例,并分享了解题思路,采用C++语言实现。最后,博主邀请读者对代码提出反馈和建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面

你好!欢迎来到我的博客,希望我的思路能够帮到你!

问题描述

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

解题思路

这个题我觉得直接暴力替换是最好的,毕竟只有26个字母。

只不过好像输入需要注意一下

AC代码

#include<iostream>
#include<string>
using namespace std;

//将密码转换为解码后返回
string trans(string s)
{
   
    string ret;
    for(int i=0;i<s.size();i++)
    {
   
        if(s[i]=='A') ret+="V";
        else if(s[i]==
### HNU 2024 春季 计算机系统 实验1 引导材料与验收标准 根据已知的信息,HNU(湖南大学)在2024年春季学期的计算机系统课程中,除了第一个实验之外,其余实验均基于卡内基梅隆大学编写的教材《CSAPP》(深入理解计算机系统)的相关配套实验[^1]。然而,关于实验1的具体引导材料和验收标准并未直接提及。 通常情况下,高校开设此类基础课程时,首个实验往往用于帮助学生熟悉开发环境以及基本工具链的操作流程。对于HNU而言,可以推测实验1的主要目标可能包括但不限于以下几个方面: #### 1. **实验目的** - 帮助学生掌握计算机系统的底层原理。 - 学习并熟练使用GNU工具链(如GCC、GDB等)或其他指定开发工具。 - 提供初步实践机会,让学生了解如何编写简单的C程序及其对应的汇编代码转换过程。 #### 2. **引导材料** 虽然具体文档未被公开说明,但依据惯例,实验1可能会涉及以下内容: - C语言基础知识复习:变量声明、指针操作、数组处理等内容。 - GNU工具链介绍:安装配置指南、命令行参数详解。 - 示例代码分析:提供一段简单代码作为案例,指导学生逐步完成调试任务。 ```c // 示例代码片段 int main() { int a = 5; int b = 10; int result = add(a, b); printf("Result: %d\n", result); return 0; } int add(int x, int y) { return x + y; } ``` #### 3. **验收标准** 验收标准通常是衡量学生是否达到预期学习成果的重要指标。以下是可能的标准项: - 正确运行给定测试用例,并提交相应结果文件。 - 编写一份详细的实验报告,记录每一步骤的操作细节及遇到的问题解决方法。 - 对特定函数或模块进行性能优化尝试,并对比前后差异效果。 需要注意的是,上述内容仅为合理推断,实际要求应以学校官方发布的正式通知为准。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值