不充钱,你怎么AC?
题目:http://codevs.cn/problem/1197/
密钥的字母可以全转换为小写字母,然后一一映射,a→0,b→1,c→2,依此类推
对于密文只需将每一位减去对应密钥的映射,如果小于 a 或 A 则再将它加上 26 即可
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std; int a[];
int main()
{
int m=-,i=;
bool f;
char ch=getchar();
while (ch!='\n')
{
if (ch<'a') ch+=;
a[++m]=ch-'a';
ch=getchar();
}
ch=getchar();
while (ch!='\n')
{
f=ch>'Z';
ch-=a[i++];
if (i>m) i=;
if ((f&&ch<'a')||((!f)&&ch<'A')) ch+=;
putchar(ch);
ch=getchar();
}
return ;
}