定向越野(c++)

题目描述

在热心网友的帮助下,小Z顺利进入了“小云雀”运动场,运动场的盛况让小Z不由自主的发出惊叹。比赛项目种类繁多,令小Z眼花缭乱,但其中一项叫“定向越野”的项目深深把他吸引住了。“定向越野”规则如下:比赛开始前,裁判将分发给每位参赛选手n张密码条以及一张解密条一张解密条,每张密码条上对应一串字符一串字符,

字符串由大小写字母及空格大小写字母及空格组成,选手需要根据解密条的内容对密码条进行解密,若解密正确,裁判将指引选手前往下一处地点完成指定任务。率先完成所有任务的挑战者,将会获得最终的大奖。酷爱挑战的小Z毫不犹豫的参加了这个项目,他拿到的解密条如下:

1)对于所有的密码条,需要对其字母字符进行大小写翻转字母字符进行大小写翻转

2)对于第i条密码条ai,需要对ai的每个字符(空格字符除外),用往右的第i个字符替代,字符z和Z的下一个字符为a和A。

学过编程的小Z同学,很快就把此密码条解密了。同样擅长编程的你,能告诉我,用编程该如何实现吗?

输入格式

共n+1行

第一行为一个正整数n,表示密码条的条数

接下来n行,每行一串字符串,表示第ai条密码条

输出格式

共n行,每行一串字符串表示解密后的密码

样例

输入数据
2
fNNC fNNC rSTCX
bYW bYW sN
输出数据
Good Good Study
Day Day Up

代码

直接模拟!!!

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	string s;
	cin>>n;
	getline(cin,s);
	for(int i=1;i<=n;i++){
		getline(cin,s);
		int len=s.size();
		for(int j=0;j<len;j++){
			if(s[j]>='a'&&s[j]<='z'){
				s[j]-=32;
					if(s[j]+i>'Z')
				s[j]=s[j]+i-26;
				else
					s[j]+=i;
			}
			else if(s[j]>='A'&&s[j]<='Z'){
				s[j]+=32;
				if(s[j]+i>'z')
				s[j]=s[j]+i-26;
				else
				s[j]+=i;
			}
		}
		cout<<s<<endl;
	}
	return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值