概述
其实这题只要知道:
A xor B = C
则 A xor C = B (这个是显然的,(1 ^ 0 =1)-> (1 ^
1=0) ,(1^1=0)->(1^0=1) 其实异或运算的性质很多都是直接根据1 0
的运算性质来的)
然后就有 B xor C = A
然后就可以破译猪头帮的密码的,先把密码异或一下看是不是都是大写字母, 至于可能有重复情况就不知道怎么弄了。。。
破译密码
Time Limit: 2000/1000 MS
(Java/Others) Memory
Limit: 65536/32768 K (Java/Others)
Total Submission(s):
2506 Accepted
Submission(s): 1123
Problem Description
有个叫“猪头帮”的国家,采用一种简单的文法加密,他们所用的语言里面只有大写字母,没有其他任何字符;现在还知道他们加密的方法是:只用一个大写字母和原文进行异或运算生成密文。请你帮忙解开。
Input
有若干组,每组输入有2行,第一行整数N表示有N个密文,接着一行有N个整数分别表示N个密文。
Output
输出仅有大写字母组成的原文。
Sample Input
30 17 6 9 8
3 0 1 6 7 4 5 10 11 8 9 14 15 12 13 18 19 16 17 22 23 20 21 26 27
24
Sample Output
SDKJABCDEFGHIJKLMNOPQRSTUVWXYZ
Author
SmallBeer(CML)
Source
Recommend
lcy
#include
#include
#include
using namespace std;
int g[10010];
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
for(int i=0;i
{
scanf("%d",&g[i]);
}
int flag=0;
char c;
for(c='A';c<='Z';c++)
{
flag=0;
for(int
i=0;i
{
if((g[i]^c)>='A'&&(g[i]^c)<='Z')
{
flag++;
}
}
if(flag==n)
break;
}
for(int i=0;i
printf("%c",g[i]^c);
printf("n");
}
return 0;
}
最后
以上就是奋斗身影为你收集整理的C语言异或运算逆运算,hdu 1287(异或运算的逆运算)的全部内容,希望文章能够帮你解决C语言异或运算逆运算,hdu 1287(异或运算的逆运算)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复