首页 > 编程语言 >NOI / 1.7编程基础之字符串 12:加密的病历单

NOI / 1.7编程基础之字符串 12:加密的病历单

时间:2023-03-05 19:56:31浏览次数:36  
标签:12 加密 NOI int 1.7 大小写 字符串 小英 逆序

描述
小英是药学专业大三的学生,暑假期间获得了去医院药房实习的机会。
在药房实习期间,小英扎实的专业基础获得了医生的一致好评,得知小英在计算概论中取得过好成绩后,主任又额外交给她一项任务,解密抗战时期被加密过的一些伤员的名单。
经过研究,小英发现了如下加密规律(括号中是一个“原文 -> 密文”的例子)

  1. 原文中所有的字符都在字母表中被循环左移了三个位置(dec -> abz)
  2. 逆序存储(abcd -> dcba )
  3. 大小写反转(abXY -> ABxy)
    输入
    一个加密的字符串。(长度小于50且只包含大小写字母)
    输出
    输出解密后的字符串。
    样例输入
    GSOOWFASOq
    样例输出
    Trvdizrrvj
    题意
    输入一个加密的字符串,在经过所有字符在字母表向右移三个位置,逆序存储,大小写反转,输出这个字符串。
    解题思路
    输入加密的字符串,如果大于等于a小于等于z,大小写反转,变成大写(减32)或变成小写(加32),所有的字符都在字母表中被循环右移了三个位置,然后逆序存储,输出解密后的字符串。
    代码实现
#include<bits/stdc++.h>
using namespace std;
int main(){
	int n=0;
	string a;
	cin>>a;
	for(int i=0;i<a.size();i++){
		if('A'<=a[i]&&a[i]<='Z'){
			a[i]=a[i]+32;//变成小写字母
		}
		else if('a'<=a[i]&&a[i]<='z'){
			a[i]=a[i]-32;//变成大写字母
		}
	}
	for(int i=0;i<a.size();i++){
		if('a'<=a[i]&&a[i]<='w'){
			a[i]=a[i]+3;//a至w向右移动三个位置
		}
		else if('x'<=a[i]&&a[i]<='z'){
			a[i]=a[i]-23;//x至z向右移动三个位置
		}
		else if('A'<=a[i]&&a[i]<='W'){
			a[i]=a[i]+3;//A至W向右移动三个位置
		}
		else if('X'<=a[i]&&a[i]<='Z'){
			a[i]=a[i]-23;//X至Z向右移动三个位置
		}	
	}
	for(int i=a.size()-1;i>=0;i--){//逆序存储
		cout<<a[i];
	}
	return 0;
}

标签:12,加密,NOI,int,1.7,大小写,字符串,小英,逆序
From: https://www.cnblogs.com/adnss/p/17181424.html

相关文章

  • 1.7编程基础之字符串
    12:加密的病历单1.描述小英是药学专业大三的学生,暑假期间获得了去医院药房实习的机会。在药房实习期间,小英扎实的专业基础获得了医生的一致好评,得知小英在计算概论中取得......
  • unity3D制作暂停游戏和继续游戏12
    菜单出来时枪不能旋转游戏需要暂停创建空物体控制所有的游戏状态创建脚本usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;public......
  • P2679 [NOIP2015 提高组] 子串
    两个仅包含小写英文字母的字符串AA和BB。现在要从字符串AA中取出kk个互不重叠的非空子串,然后把这kk个子串按照其在字符串AA中出现的顺序依次连接起来得到一个......
  • NOI2023春季测试游记
    这还要写游记?直接进入题解环节。[[春季测试2023]涂色游戏]难度:\(Easy+\)标签:无十分弱智的一道题......显然地,对于任意一个格子\((x,y)\),它最多被两次操作影响它......
  • 12——Promise
    第十二周Promise初识PromisePromise异步操作的一种解决方案回调函数,异步操作的一种解决方案什么时候使用一般用来解决层层嵌套的回调函数,(回调地狱callbac......
  • P1149 [NOIP2008 提高组] 火柴棒等式
    题目描述给你 nn根火柴棍,你可以拼出多少个形如 A+B=C的等式?等式中的 A、B、C是用火柴棍拼出的整数(若该数非零,则最高位不能是 0)。用火柴棍拼数字 0∼9 的拼法如图所......
  • NOI2023春测游记
    DAY-?教练跟我们说让我们参加下春季赛,被迫参加(本来自己就太菜了)迫不得已就去秦皇岛吧DAY-1这天一直在做DP,感觉脑子快炸了不过DP感觉好多了DAY0准备出发了(打了打......
  • NOI 2023 春季测试 游记
    开坑,待填。upd:寄了,不想填,但还是来填坑了。\(Day-1\)看板子,什么都不会。(悲)\(Day0\)睡了一天觉,晚上和学长们玩了各种游戏/se。\(Day1\)早上起来感觉隐隐约约肚......
  • 洛谷P1213 [USACO1.4][IOI1994]时钟 The Clocks
    这是一个暴力枚举题有两种解决方法,第一种用九重for循环(有点麻烦,尽量别用),第二种简化版(虽然行数少了,但难理解),先来看看 题目!!!题目描述考虑将如此安排在一个 3*3 行......
  • 2023/3/4 NOI春季测试游记
    高中第一次参加正式比赛……挺紧张的,不过在家附近的连大比又没那么紧张其实(再说19年也比过)……Day-114514知道了NOIP要延期,感觉我这种小萌新也能去见识见识大场面了,......