比赛 |
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;
- }