baccano @ 2018-08-24 01:08:15
#include <bits/stdc++.h>
using namespace std;
main()
{
string a;int n;
cin>>n>>a;
for(int i=0;i<a.size();i++)
{
if(a[i]+n<='z')
a[i]+=n;
else if(a[i]+n>'z')
{
char c='z'-a[i];
a[i]='a'+n-c-1;
}
}
cout<<a;
}
这是我提交AC的代码。我抱着试一试的态度去提交,但是居然AC了,看来测试数据并不强!显然这个代码没有考虑n过大的情况!!! 输入: 99 zzz 输出: 妹 显然不对!!! 于是进行了如下改进(太晚了可能会有昏迷打错但是也AC了。。自己测试目前也没有问题)
#include <bits/stdc++.h>
using namespace std;
main()
{
string a;int n;
cin>>n>>a;
for(int i=0;i<a.size();i++)
{
if(a[i]+n<='z')
a[i]+=n;
else if(a[i]+n>'z')
{
char c='z'-a[i];
if(n-c-1<=25)
a[i]='a'+n-c-1;
else
{
int p=(n-c)%26;
a[i]='a'+p-1;
}
}
}
cout<<a;
}
}
输入: 999 zzz 输出: kkk
by baccano @ 2018-08-24 12:51:49
下面的代码最后晚上昏迷了多打了一个}。。。看来最后复制粘贴的时候出现了问题,测试提交的时候并没有