比赛 2012Day1 评测结果 AAAAAAAAAA
题目名称 Vigenère密码 最终得分 100
用户昵称 蜗牛哲 运行时间 0.002 s
代码语言 C++ 内存使用 0.32 MiB
提交时间 2015-10-22 19:27:38
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib>
#include<cmath>
#include<climits>
using namespace std;

const int maxn=1000+10;
char yao[maxn],mi[maxn],ming[maxn];

int len1,len2;

int main()
{
	freopen("vigenere.in","r",stdin);
	freopen("vigenere.out","w",stdout);
	
	gets(yao);
	len1=strlen(yao);
	gets(mi);
	len2=strlen(mi);
	for(int i=len1; i<len2; i++)
	{
		yao[i]=yao[i%len1];
	}
	for(int i=0; i<len2; i++)
	{
		if(yao[i]>='a' && yao[i]<='z')
		{
			ming[i]=mi[i]-(yao[i]-'a');
			if((mi[i]<='Z' && ming[i]<'A')||(mi[i]>='a' && ming[i]<'a'))
			{
				ming[i]+=26;
			}
		}
		if(yao[i]>='A' && yao[i]<='Z')
		{
			ming[i]=mi[i]-(yao[i]-'A');
			if((mi[i]<='Z' && ming[i]<'A')||(mi[i]>='a' && ming[i]<'a'))
			{
				ming[i]+=26;
			}
		}
	}
	for(int i=0; i<len2; i++)
	{
		cout<<ming[i];
	}
	cout<<endl;
	return 0;
}