我是靠谱客的博主 奋斗身影,最近开发中收集的这篇文章主要介绍C语言异或运算逆运算,hdu 1287(异或运算的逆运算),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

其实这题只要知道:

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(异或运算的逆运算)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部