首页 > 其他分享 >P1914 小书童——凯撒密码

P1914 小书童——凯撒密码

时间:2024-01-22 16:35:16浏览次数:32  
标签:26 ch 小书童 样例 P1914 密码 str 凯撒

1.题目介绍

小书童——凯撒密码

题目背景

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

题目描述

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

输入格式

第一行:\(n\)。第二行:未移动前的一串字母。

输出格式

一行,是此蒟蒻的密码。

样例 #1

样例输入 #1

1
qwe

样例输出 #1

rxf

提示

字符串长度 \(\le 50\),\(1 \leq n \leq 26\)。

2.题解

2.1 使用求余%来表示循环

思路

这里唯一一个难点当ch+n超出'z'时,如何进行循环?
这里就可以采用偏移量+求余的方式进行
即 (ch - 'a' + n) % 26(偏移量) + 'a'(基值)

代码

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin >> n;
	string str;
	cin >> str;
	for(char ch: str){
		ch = (ch - 'a' + n) % 26 + 'a';
		cout << ch; 
	} 
}

标签:26,ch,小书童,样例,P1914,密码,str,凯撒
From: https://www.cnblogs.com/trmbh12/p/17980317

相关文章

  • Crypto凯撒密码
    凯撒密码主要用于26个英文字母加密密钥:k(偏移量)明文:x      密文:y加密:y=(x+k)mod26解密:x=(y-k)mod26例:k=3明文:abcde则:密文:defghBuuctf题目:题目一、MTHJ对应flag,这里的密钥k不是一个固定值,且k无任何规律可言。 将空格去掉就得到了flag题目二......
  • Misc_XCTF_WriteUp | [简单] 凯撒大帝在培根里藏了什么
    题目提示:究极简单题(认真格式为flag{你所得到的大写字符串}题目:分析根据提示,该题用到凯撒密码和移位密码。题目中字符串非A即B,先用培根密码的方式解密:之后不断更换偏移量对培根密码解密的结果进行凯撒密码解密。当偏移量为6时得到的字符串可读:按格式提交flag......
  • Crypto_BUUCTF_WriteUp | 凯撒?替换?呵呵!
    题目MTHJ{CUBCGXGUGXWREXIPOYAOEYFIGXWRXCHTKHFCOHCFDUCGTXZOHIXOEOWMEHZO}注意:得到的flag请包上flag{}提交,flag{小写字母}分析根据题目的指向,这题采用的是凯撒密码。根据格式猜测MTHJ分别对应FLAG四个字母。剩下的内容看这没有更多的提示了,猜测flag内容本身是可......
  • P1926 小书童——刷题大军
    这个题目挺有意思的,有点贪心思想,就是要把更多的时间留给刷题,所以要把01背包改成取min,所以要把dp[i]先预处理成0x3f无穷大,然后把刷题时间排个序,这要就是最佳的答案。#include<bits/stdc++.h>usingnamespacestd;inta[20],b[20],c[20];intf[100];intmain(){ intn,m,k,r......
  • 凯撒加解密脚本
    #chr()接受一个整数,,返回该整数对应的Unicode字符,chr('A')=65,chr('中')=2013#ord()接受一个字符,,返回该字符对应的Unicode编码,ord('65')=A,ord('2013')=中 明文:str='cdef'加密forjinrange(0,26):print(j,end='')fori......
  • BUUCTF_Crypto_WriteUp | 变异凯撒
    题目加密密文:afZ_r9VYfScOeO_UL^RWUc格式:flag{}分析先复习一下凯撒密码。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。凯撒密码是单表代......
  • 简单的凯撒密码、维吉尼亚密码介绍
    凯撒密码:维吉尼亚密码:请描述维吉尼亚密码和凯撒密码的区别是什么?不同点:凯撒密码,就是将字母进行位移,位移范围1-25;维吉尼亚密码是查表,查表范围也是1-26;相同点:明文多长,密文也是同样是这么长;......
  • 【每日例题】蓝桥杯 C语言 凯撒加密
    凯撒加密题目题目描述给定一个单词,请使用凯撒密码将这个单词加密。凯撒密码是—种替换加密的技术,单词中的所有字母都在字母表上向后偏移3位后被替换成密文。即α变为d,b变为e,·,w变为z,Z变为a,g变为b,z变为c。输入描述输入格式:输入一行,包含一个单词,单词中只包含小写英文字母,单词中......
  • 【代码分享】使用 avx2 + 查表法,优化凯撒加密
    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!cnblogs博客zhihuGithub公众号:一本正经的瞎扯接上一篇:【代码分享】使用avx512+查表法,优化凯撒加密好不容易捣鼓出来了avx512指令集的查表法代码,可是部署的时候发现服务器不支持avx512指令集。终于,avx2......
  • 【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-变异凯撒
    前言在密码学中,凯撒密码是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。ROT13是凯撒密码的一种变体,即移位数为13。RO......