杭电 1287 破译密码
2012-09-05 15:36
253 查看
^按位异或的意思。就是“不同为1,相同为0”
1^1=0 0^1=1 0^0=0
举个例子:3^5=?
3=(0011)B 5=(0101)B
0011
^ 0101
————
0110
0110的十进制数是6
所以3^5=6
这题其实是说存在一个大写字母x,然后让原文(都是大写字母)和x做xor后得到密文。现在给密文求原文。
因为x不知道,所以枚举x。判断方法是判断是否解密出来的原文都在'A'-'Z'范围内。
起初做的时候不明白那个异或怎么弄的。只要知道^符号就能做了。
代码:
View Code
1^1=0 0^1=1 0^0=0
举个例子:3^5=?
3=(0011)B 5=(0101)B
0011
^ 0101
————
0110
0110的十进制数是6
所以3^5=6
这题其实是说存在一个大写字母x,然后让原文(都是大写字母)和x做xor后得到密文。现在给密文求原文。
因为x不知道,所以枚举x。判断方法是判断是否解密出来的原文都在'A'-'Z'范围内。
起初做的时候不明白那个异或怎么弄的。只要知道^符号就能做了。
代码:
View Code
#include<iostream> using namespace std; int main() { int n,i,j; char y; int scr[10000]; while(cin>>n) { for(i=0;i<n;i++) cin>>scr[i]; for(i=65;i<=90;i++) { for(j=0;j<n;j++) if((scr[j]^i)<65||(scr[j]^i)>90) break; if(j>=n) break; } for(j=0;j<n;j++) { putwchar(scr[j]^i); } cout<<endl; } }
相关文章推荐
- 杭电OJ1287-破译密码
- 杭电 1287 破译密码
- 杭电1287破译密码
- 杭电 1287 破译密码
- 杭电-1287 破译密码 (异或运算)
- 杭电 1287 破译密码
- 杭电ACM1287——破译密码
- hdoj 1287 破译密码
- HDOJ 1287 破译密码(异或运算)
- HDOJ 1287 破译密码(异或运算)
- hdoj1287_破译密码
- HDOJ 题目1287 破译密码(暴力)
- hdu 1287 破译密码
- Hdu 1287 破译密码
- HDOJ-1287 破译密码(数学)
- HDOJ 1287:破译密码
- hdu 1287破译密码(水)
- HDU 1287 破译密码
- hdu 1287 破译密码
- HDU 1287 破译密码