当前位置: 首页 > news >正文

csp信奥赛C++高频考点专项训练之字符串 --【字符串基础】:凯撒密码

csp信奥赛C++高频考点专项训练之字符串 --【字符串基础】:凯撒密码

题目背景

某蒟蒻迷上了 “小书童”,有一天登陆时忘记密码了(他没绑定邮箱 or 手机),于是便把问题抛给了神犇你。

题目描述

蒟蒻虽然忘记密码,但他还记得密码是由一个字符串组成。密码是由原文字符串(由不超过 50 个小写字母组成)中每个字母向后移动n nn位形成的。z的下一个字母是a,如此循环。他现在找到了移动前的原文字符串及n nn,请你求出密码。

输入格式

第一行:n nn。第二行:未移动前的一串字母。

输出格式

一行,是此蒟蒻的密码。

输入输出样例 #1
输入 #1
1 qwe
输出 #1
rxf
说明/提示

字符串长度≤ 50 \le 50501 ≤ n ≤ 26 1 \leq n \leq 261n26

分析思路

本题是一个经典的凯撒密码问题。给定原文字符串(仅包含小写字母)和移动位数 n,要求将每个字母向后移动 n 位,其中z的后一个是a,形成循环。
处理方法:遍历字符串的每个字符c,计算(c - 'a' + n) % 26,得到移位后的字母索引,再加上'a'即为新字符。由于 n 可能大于 26,取模运算能保证循环正确。最后输出结果字符串。

代码实现

#include<bits/stdc++.h>usingnamespacestd;intmain(){intn;// 移动位数string s;// 原文字符串cin>>n>>s;// 读取输入for(inti=0;i<s.size();i++){// 遍历每个字符// 计算移位后的字符:'a' + (当前字符相对'a'的偏移 + n) mod 26s[i]='a'+(s[i]-'a'+n)%26;}cout<<s<<endl;// 输出密码return0;}

功能分析

  • 输入:第一行一个整数 n(1 ≤ n ≤ 26 1 \le n \le 261n26),第二行一个由小写字母组成的字符串(长度不超过 50)。
  • 输出:一行字符串,为原字符串中每个字母向后移动 (n) 位后得到的密码(循环移位)。
  • 处理逻辑:程序读取数据后,对每个字符使用取模运算完成循环移位,直接修改原字符串并输出。

【完整系列请查看专栏】:
信奥赛C++普及组CSP-J一等奖通关刷题题单及题解:
https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转


各种学习资料,助力大家一站式学习和提升!!!

#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"########## 一站式掌握信奥赛知识! ##########";cout<<"############# 冲刺信奥赛拿奖! #############";cout<<"###### 课程购买后永久学习,不受限制! ######";return0;}

【秘籍汇总】(完整csp信奥赛C++学习资料):

1、csp/信奥赛C++,完整信奥赛系列课程(永久学习):

https://edu.csdn.net/lecturer/7901 点击跳转

2、CSP信奥赛C++竞赛拿奖视频课:

https://edu.csdn.net/course/detail/40437 点击跳转

https://edu.csdn.net/course/detail/41081 点击跳转

3、csp信奥赛高频考点知识详解及案例实践:

CSP信奥赛C++动态规划:
https://blog.csdn.net/weixin_66461496/category_13096895.html点击跳转

CSP信奥赛C++标准模板库STL:
https://blog.csdn.net/weixin_66461496/category_13108077.html 点击跳转

信奥赛C++提高组csp-s知识详解及案例实践:
https://blog.csdn.net/weixin_66461496/category_13113932.html 点击跳转

4、csp信奥赛冲刺一等奖有效刷题题解:

信奥赛C++普及组CSP-J一等奖通关刷题题单及题解:
https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转

信奥赛C++提高组csp-j初赛&复赛真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转

信奥赛C++提高组csp-s初赛&复赛真题题解(持续更新):
https://blog.csdn.net/weixin_66461496/category_13125089.html 点击跳转

5、GESP C++考级真题题解:

GESP(C++ 一级+二级+三级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转

GESP(C++ 四级+五级+六级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转


GESP(C++ 七级+八级)真题题解(持续更新):
https://blog.csdn.net/weixin_66461496/category_13117178.html 点击跳转

· 文末祝福 ·

#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"跟着王老师一起学习信奥赛C++";cout<<" 成就更好的自己! ";cout<<" csp信奥赛一等奖属于你! ";return0;}
http://www.jsqmd.com/news/750252/

相关文章:

  • 从零构建私有化代码智能体:基于开源大模型与vLLM的工程实践
  • 抖音合集批量下载终极完整方案:快速免费保存所有精彩内容
  • VSCode远程开发+云服务器踩坑记:pip install报错Errno 28的完整避坑与自动化清理脚本
  • 医疗影像仿真技术:ROOM模拟器在AI训练中的应用
  • 策略梯度里的‘探索与利用’平衡术:深入解读REINFORCE更新公式中的beta系数
  • Sunshine游戏串流:5步打造你的跨平台游戏中心
  • AlwaysOnTop窗口置顶工具:3分钟掌握高效多任务处理的终极方案
  • AI驱动的自动化渗透测试:Shannon多智能体架构与实战部署指南
  • Vue2项目里,高德地图MassMarks性能优化实战:从几百到几万个标记点都不卡
  • ModOrganizer2游戏路径配置错误导致Mod失效的技术解析
  • 从网线到点云:手把手搞定Velodyne VLP-16在ROS Noetic下的网络配置与可视化(避坑指南)
  • 终极指南:5分钟上手Reloaded II,打造你的专属游戏模组世界 [特殊字符]
  • 如何用YimMenu打造终极GTA5安全游戏体验:5分钟快速入门指南
  • 在Windows上运行iOS应用:ipasim跨平台模拟器完整指南
  • 新手福音:在快马平台零代码基础快速上手yolov5目标检测
  • 专业Cookie本地导出方案:Get cookies.txt LOCALLY高效安全指南
  • Altium Designer 22 效率翻倍秘籍:这30个快捷键让你画板快人一步
  • 终极指南:5分钟掌握Windows与Office智能激活的完整方案
  • Python开发者五分钟接入Taotoken并调用Chat Completions教程
  • 通过curl命令直接测试Taotoken的OpenAI兼容接口连通性
  • Allegro PCB设计避坑指南:手把手教你批量修改丝印、走线、铜箔的层属性
  • 技术解密:Armbian如何破解Amlogic电视盒子的Linux化壁垒
  • 从‘猫狗大战’到‘以假乱真’:用通俗比喻带你彻底搞懂GAN、WGAN和CycleGAN
  • 别再假设舵机是理想模型了!聊聊PID参数整定那些真实的坑
  • FreeDictionaryAPI技术解析:构建13种语言词典服务的架构设计与实现方案
  • Xiaomusic:10分钟掌握小爱音箱语音音乐播放的完整教程
  • RAG(五)检索后优化方法(2)压缩
  • 快速上手stm32f103c8t6:用快马AI五分钟生成LED流水灯原型代码
  • Python 3.12 Descriptor - 03 - staticmethod
  • PotPlayer字幕实时翻译深度解析:技术实现与应用实践