这题,简单的异或运算。
a ^ b = c => a ^ b ^ a = c ^ a = b。
而这个b就是我们要求解的。
下面的是AC的代码:
#include <iostream> #include <cstring> using namespace std; int a[10010]; char b[10010]; int main() { int n; int i, j, k; while(cin >> n) { for(i = 0; i < n; i++) cin >> a[i]; memset(b, '\0', sizeof(b)); for(j = 'A'; j <= 'Z'; j++) //密码的规律如此,从A到Z之后,在来一次轮回 { for(k = 0; k < n; k++) { b[k] = j ^ a[k]; if(b[k] < 'A' || b[k] > 'Z') break; } if(k == n) break; } cout << b << endl; } return 0; }