求助!悬关!
  • 板块灌水区
  • 楼主_wangleting123_
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/10/16 20:05
  • 上次更新2023/11/2 13:24:16
查看原帖
求助!悬关!
1040559
_wangleting123_楼主2023/10/16 20:05

#A. 矩阵改写

传统题 1000ms 256MiB 

题目描述:

小Z有一个 n∗mn∗m 的字符矩阵,这个矩阵里只有小写字母和大写字母,他想改变这个矩阵,规则如下:

如果这个字母是小写,那么改成大写,并且"跳" xx 次;

如果这个字母是大写,那么改成小写,并且"跳" xx 次。

"跳"的意思是,往后移动字母,如果移动到了z或Z,那么下一次移动就从a或A开始。例如:把B"跳" 1010 次,结果就是L;把z跳 11 次,结果就是a。 输入描述:

第一行,三个数 n,m,xn,m,x,意思如题目所说。

接下来 nn 行,每行 mm 个字符,中间无空格。 输出描述:

nn 行,每行 mm 个字符,中间无空格。 输入样例:

3 2 3 Ab Bf xZ

输出样例:

dE eI Ac

数据范围:

1≤n,m≤1001≤n,m≤100

0≤x≤250≤x≤25

#include<iostream>
#include<cstring>
char a[110][110];
using namespace std;
int main()
{
    int n,m,x;
    cin>>n>>m>>x;
    for(int i=1;i<=n;i++)
    {
    	for(int j=1;j<=m;j++)
    	{
    		cin>>a[i][j];
    		if(a[i][j]>='a'&&a[i][j]<='z')
    		{
    			a[i][j]-=32;
    			a[i][j]+=x;
    			while(a[i][j]>'Z')
    			{
    				a[i][j]-=26;
				}
			}
			else if(a[i][j]>='A'&&a[i][j]<='Z')
			{
				a[i][j]+=32;
				a[i][j]+=x;
				while(a[i][j]>'z')
				{
					a[i][j]-=26;
				}
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		cout<<a[i][j];
		cout<<endl;
	}
    return 0;
}

只有1个测试点过了!

2023/10/16 20:05
加载中...