题解:P1079 [NOIP2012 提高组] Vigenère 密码
思路很简单,只要我们观察题目中最下面的表格就可以知道。一个字符串的第
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
string k;
string c;
cin>>k>>c;
int now=0;
for(int i=0;i<c.size();i++)
{
char ch=k[now];
int a;
if(ch>='A'&&ch<='Z') a=ch-'A';
if(ch>='a'&&ch<='z') a=ch-'a';
char b=c[i]-a;
if(c[i]>='A'&&c[i]<='Z')
{
if(b<'A')
{
b+=26;
}
}
if(c[i]>='a'&&c[i]<='z')
{
if(b<'a')
{
b+=26;
}
}
cout<<b;
now++;
if(now>k.size()-1) now=0;//如果指针超过了长度就回到第0个字符
}
return 0;
}