NOIP2012 Vigenère 密码
2016-07-05 16:55
375 查看
上图大家看着是不是有些晕?
上图的转换其实非常简单
万能公式:
hljs mathematica">M=C-K+1 ,M<'A' M+=26 C=M+K-1 ,C>'Z' C-=26
接着就是代码了(无视char*+string,开始没有string,后来因为%错了,就改为string存K)
#include<bits/stdc++.h> using namespace std; int i; char s1[2001]; string s2; int main(){ cin>>s2; for(i=0;i<s2.size();i++) if(s2[i]<'a')s2[i]-='A'; else s2[i]-='a'; scanf("%s",&s1); while(s2.size()<strlen(s1))s2+=s2; for(i=0;i<strlen(s1);i++) if(s1[i]<'a'){ s1[i]=s1[i]-s2[i]; if(s1[i]<'A')s1[i]+=26; } else{ s1[i]=s1[i]-s2[i]; if(s1[i]<'a')s1[i]+=26; } puts(s1); return 0; }
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- android string.xml文件中的整型和string型代替
- Android java 与 javascript互访(相互调用)的方法例子
- android上改变listView的选中颜色
- String.intern
- Prototype源码浅析 String部分(二)
- Ruby中的String对象学习笔记
- 浅析Oracle中char和varchar2的区别
- PostgreSQL ERROR: invalid escape string 解决办法
- MySQL中VARCHAR与CHAR格式数据的区别
- 浅谈C++中的string 类型占几个字节
- 标准C++类string的Copy-On-Write技术
- C++实现string存取二进制数据的方法
- C#中string和StingBuilder内存中的区别实例分析
- 详解C++中实现继承string类的MyString类的步骤
- PHP STRING 陷阱原理说明
- c#中 String和string的区别介绍
- C#实现的图片、string相互转换类分享
- asp.net String.IsNullOrEmpty 方法
- JavaScript中字符串(string)转json的2种方法