比赛 |
2012Day1 |
评测结果 |
AAAAAAAAAA |
题目名称 |
Vigenère密码 |
最终得分 |
100 |
用户昵称 |
lingyixiaoyao |
运行时间 |
0.002 s |
代码语言 |
C++ |
内存使用 |
0.35 MiB |
提交时间 |
2015-10-22 19:22:44 |
显示代码纯文本
#include <cstdio>
#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
char s1[1001],s2[10001],s3[10001],s4[10001],s5[10010];//s1是密钥
//s2是密文
int len2,len1;
int main()
{
freopen("vigenere.in","r",stdin);
freopen("vigenere.out","w",stdout);
gets(s1);gets(s2);
strcpy(s4,s1);
strcpy(s5,s2);
len1=strlen(s1);len2=strlen(s2);
int i=0,j=0;
while(j<=len2)
{
if(s1[i]>='a' && s1[i]<='z')
{
s1[i]=s1[i]-32;
}
if(s2[j]>='a' && s2[j]<='z')
{
s2[j]=s2[j]-32;
}
if(s2[j]-65>=s1[i]-65)
{
s3[j]=(s2[j]-65-(s1[i]-65))+'A';
}
else
{
s3[j]=90-(s1[i]-65-(s2[j]-65))+1;
}
j++;i++;
if(i==len1)
{
i=0;
}
}
for(int i=0;i<len2;i++)
{
//
s3[i]=s3[i]+32;
if(/*s4[i]>=65 && s4[i]<=90)*/ s5[i]>=65 && s5[i]<=90)
{
s3[i]=s3[i]-32;
}
cout<<s3[i];
}
return 0;
}