noip2012d1t1(Vigenère 密码 )

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
char c[2100],k[2100]; int n[2100],lenk;

int main(){
cin>>k; cin>>c;
lenk=strlen(k);

for(int i=0;i<lenk;i++)
if(k[i]<97)n[i]=k[i]-65;
else n[i]=k[i]-97;

for(int i=0;i<strlen(c);i++){
if(( c[i]<97 && (c[i]-65)<n[i % lenk] ) || (c[i]>96 && (c[i]-97)<n[i % lenk] ))
printf("%c",c[i]+26-n[i % lenk]);
else
printf("%c",c[i]-n[i % lenk]);
}
return 0;
}

原文地址:https://www.cnblogs.com/Chri-K/p/13696492.html