定义字符加法:
a+1=ba+1=b,b+1=cb+1=c,……,以此类推,特殊地z+1=az+1=a
z−1=y,y-1=xy−1=x,……,以此类推,特殊地a-1=za−1=z
给定一个长度为n的字符串,请输出特殊处理之后的字符串
需要对字符串进行如下处理:对于字符串当中任意字符s(1≤i≤n),当i为奇数时将该字符用s+i替换,当i为偶数时将该字符用s-i替换

思路:字符模拟,当数字出现的位置为奇数时将它的位置所在的字符加上当前的位置,当数字出现的位置为偶数时将它的位置所在的字符减去当前的位置,加入当前位置为1并且字符为a,那么他是一个奇数我们加上他的位置1为b。

#include<bits/stdc++.h>
using namespace std;
char a[60],b[100005];
int n;
int main(){
    cin>>n;
    for(int i=0;i<26;i++)a[i]='a'+i,a[i+26]='a'+i; //预处理两遍26位字符
    for(int i=0;i<n;i++)cin>>b[i]; 
    for(int i=0;i<n;i++){
        int xx=i+1; //位置加1,因为输出是从0开始
        xx%=26; //%26,因为数字会超过26
        if((xx%2)!=0){
            b[i]=a[(b[i]-'a')+xx]; //如果是奇数直接让b[i]等于a中的下标为当前位置加上xx
        }else{
            b[i]=a[26+(b[i]-'a')-xx]; //如果是偶数和奇数有一个差别就是加上26,这样再去减的时候就能正常减而且不会越界        
        }
    } 
    for(int i=0;i<n;i++)cout<<b[i];
    return 0;
}