比赛 2012Day1 评测结果 AAAAAAAAAA
题目名称 Vigenère密码 最终得分 100
用户昵称 lingyixiaoyao 运行时间 0.002 s
代码语言 C++ 内存使用 0.35 MiB
提交时间 2015-10-22 19:22:44
显示代码纯文本
  1. #include <cstdio>
  2. #include <iostream>
  3. #include <cstring>
  4. #include <cmath>
  5. using namespace std;
  6.  
  7. char s1[1001],s2[10001],s3[10001],s4[10001],s5[10010];//s1是密钥
  8. //s2是密文
  9. int len2,len1;
  10.  
  11. int main()
  12. {
  13. freopen("vigenere.in","r",stdin);
  14. freopen("vigenere.out","w",stdout);
  15. gets(s1);gets(s2);
  16. strcpy(s4,s1);
  17. strcpy(s5,s2);
  18. len1=strlen(s1);len2=strlen(s2);
  19. int i=0,j=0;
  20. while(j<=len2)
  21. {
  22. if(s1[i]>='a' && s1[i]<='z')
  23. {
  24. s1[i]=s1[i]-32;
  25. }
  26. if(s2[j]>='a' && s2[j]<='z')
  27. {
  28. s2[j]=s2[j]-32;
  29. }
  30. if(s2[j]-65>=s1[i]-65)
  31. {
  32. s3[j]=(s2[j]-65-(s1[i]-65))+'A';
  33. }
  34. else
  35. {
  36. s3[j]=90-(s1[i]-65-(s2[j]-65))+1;
  37. }
  38. j++;i++;
  39. if(i==len1)
  40. {
  41. i=0;
  42. }
  43. }
  44. for(int i=0;i<len2;i++)
  45. {
  46. //
  47. s3[i]=s3[i]+32;
  48. if(/*s4[i]>=65 && s4[i]<=90)*/ s5[i]>=65 && s5[i]<=90)
  49. {
  50. s3[i]=s3[i]-32;
  51. }
  52. cout<<s3[i];
  53. }
  54. return 0;
  55. }