洛谷 P1079 Vigenère 密码

2019-10-08 08:48:12来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

洛谷 P1079 Vigenère 密码

目录

  • 题目
  • 思路
  • $Code$

题目

P1079 Vigenère 密码

思路

字符串+模拟。仔细读题,然后仔细敲代码(说了和没说一样)。。。

$Code$

#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<algorithm>
#define MAXN 1001
using namespace std;
char a[MAXN],key[101];

int main() {
    cin>>key;
    cin>>a;
    int len1=strlen(key);
    for(int i=0;i<len1;++i) {
        if(key[i]<='z'&&key[i]>='a') {
            key[i]=key[i]-'a'+'A';
        }
    }
    int len2=strlen(a);
    int sum=0;
    int zz=0;
    while(sum<len2) {
        if(zz==len1) zz=0;
        int bh=key[zz++]-'A';
        if(a[sum]<='z'&&a[sum]>='a') {
            if(a[sum]-'a'<bh) {
                bh-=a[sum]-'a'+1;
                a[sum]='z';
            }
            a[sum]-=bh;
        }
        if(a[sum]<='Z'&&a[sum]>='A') {
            if(a[sum]-'A'<bh) {
                bh-=a[sum]-'A'+1;
                a[sum]='Z';
            }
            a[sum]-=bh;
        }
        sum++;
    }
    cout<<a;
    return 0;
}

原文链接:https://www.cnblogs.com/poi-bolg-poi/p/11623362.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:背包问题

下一篇:C++分治策略实现快速排序