题目地址:点击打开链接
思路:
异或运算法则
1. a ^ b = b ^ a
2. a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c;
3. d = a ^ b ^ c 可以推出 a = d ^ b ^ c.
4. a ^ b ^ a = b.
异或还有逆运算 a^b=c,则a=b^c
AC代码:
#include<stdio.h>
int a[3000];
int main()
{
int n,i,j;
char c;
while(scanf("%d",&n) != EOF)
{
for(i=0; i<n; i++)
{
scanf("%d",&a[i]);
}
for(i='A'; i<='Z'; i++)
{
for(j=0; j<n; j++)
{
c = a[j] ^ i;
if(c < 'A'|| c > 'Z')
break;
}
if(j == n)
break;
}
for(j=0; j<n; j++)
{
printf("%c",a[j] ^ i);
}
printf("\n");
}
return 0;
}