很基础的一道题,注意一下负数取模就行了,i太大的时候偶数会变成负数,我就因为这个WA了几发
懂原理的话就变得很简单了,下面给出我的13行无压行代码
#include<bits/stdc++.h> using namespace std; char s[100005]; int main(){ int n; cin>>n; cin>>s+1; for (int i = 1; i <=n; ++i) { if(i&1) s[i]=(s[i]-97+i)%26+97; else s[i]=((s[i]-97-i)%26+26)%26+97; } puts(s+1); }
不需要多解释了吧。。把这个看成一个环就行了,比较基础的题。