[ CodeVS冲杯之路 ] P1197

Posted Yo!Hadilo!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[ CodeVS冲杯之路 ] P1197相关的知识,希望对你有一定的参考价值。

  不充钱,你怎么AC?

  题目:http://codevs.cn/problem/1197/

 

  密钥的字母可以全转换为小写字母,然后一一映射,a→0,b→1,c→2,依此类推

  对于密文只需将每一位减去对应密钥的映射,如果小于 a 或 A 则再将它加上 26 即可

 1 #include<cstdio>
 2 #include<cstdlib>
 3 #include<cstring>
 4 #include<cmath>
 5 #include<iostream>
 6 #include<algorithm>
 7 using namespace std;
 8 
 9 int a[101];
10 int main()
11 {
12     int m=-1,i=0;
13     bool f;
14     char ch=getchar();
15     while (ch!=\n)
16     {
17         if (ch<a) ch+=32;
18         a[++m]=ch-a;
19         ch=getchar();
20     }
21     ch=getchar();
22     while (ch!=\n)
23     {
24         f=ch>Z;
25         ch-=a[i++];
26         if (i>m) i=0;
27         if ((f&&ch<a)||((!f)&&ch<A)) ch+=26;
28         putchar(ch);
29         ch=getchar();
30     }
31     return 0;
32 }

 

以上是关于[ CodeVS冲杯之路 ] P1197的主要内容,如果未能解决你的问题,请参考以下文章

[ CodeVS冲杯之路 ] P3143

[ CodeVS冲杯之路 ] P3955

[ CodeVS冲杯之路 ] P1576

[ CodeVS冲杯之路 ] P1368

[ CodeVS冲杯之路 ] P2492

[ CodeVS冲杯之路 ] P1294