^按位异或的意思。就是“不同为1,相同为0”
1^1=0 0^1=1 0^0=0举个例子:3^5=?3=(0011)B 5=(0101)B 0011^ 0101———— 01100110的十进制数是6所以3^5=6这题其实是说存在一个大写字母x,然后让原文(都是大写字母)和x做xor后得到密文。现在给密文求原文。
因为x不知道,所以枚举x。判断方法是判断是否解密出来的原文都在'A'-'Z'范围内。
起初做的时候不明白那个异或怎么弄的。只要知道^符号就能做了。
代码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
1 #include2 using namespace std; 3 int main() 4 { 5 int n,i,j; 6 char y; 7 int scr[10000]; 8 while(cin>>n) 9 {10 for(i=0;i >scr[i];12 for(i=65;i<=90;i++)13 {14 for(j=0;j 90)16 break; 17 if(j>=n)18 break; 19 }20 for(j=0;j