比赛 NOIP2015普及组练习 评测结果 WWWWWWWWWW
题目名称 Vigenère密码 最终得分 0
用户昵称 expletar 运行时间 0.026 s
代码语言 C++ 内存使用 0.22 MiB
提交时间 2015-11-03 20:38:39
显示代码纯文本
#include<fstream>
#include<string>
using namespace std;
string s1,key;
ofstream  out ("vigenere.out");
ifstream in ("vigenere.in");
char tran (char a,char key)
{
	if (key>=a)
		return key-a+'A';
	else return 'Z'-a+key;
}
int main ()
{
	
	in>>key;
	in>>s1;
	int leg=key.length();
	int n=s1.length();
	
	for (string::iterator it=key.begin();it!=key.end();++it)
		*it=toupper(*it);
	bool flag;
	for (int i=0;i<n;++i)
	{
		flag=s1[i]<='Z'?1:0;
		if (flag)
			out<<char(toupper(tran(s1[i],key[i%leg])));
		else out<<char(tolower(tran(toupper(s1[i]),key[i%leg])));
	}
	
	return 0;
}