使用C++解决问题:题目描述 有n个人; 每个人有一个编号,如果编号相同,那么两人互为朋友,不存在一个人有两个朋友及以上 输入描述 第一行一个整数n 第二行输入n个数,表示每个人的编号 多实例 输出描述 判断是否存在没有朋友的人 存在输出:YE5 不存在输出:N0 样例输入 5 1 2 2 5 1 样例输出 YE5 提示 异或运算,相同会得出0,异或符号'^' 例如:5^5=0
时间: 2024-03-08 18:49:08 浏览: 76
以下是使用 C++ 解决该问题的代码:
```c++
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int xor_sum = 0;
for(int i = 0; i < n; i++) {
int id;
cin >> id;
xor_sum ^= id;
}
if(xor_sum == 0) {
cout << "YE5" << endl;
} else {
cout << "N0" << endl;
}
return 0;
}
```
解释:
我们可以使用异或运算(^)来解决这个问题。对于每个人的编号,我们将它们进行异或运算,得到的结果即为没有朋友的人的编号。如果结果为 0,则不存在没有朋友的人。
具体实现时,我们先读入人数 n,然后用一个变量 xor_sum 表示所有人的编号进行异或运算的结果。接着读入每个人的编号,每读入一个编号,就将它与 xor_sum 进行异或运算。最后判断 xor_sum 是否为 0,输出相应的结果即可。
阅读全文