查找出现奇数次数数字的 C/C++ 程序?
在这个程序中,我们将看到如何获取一个数组中出现奇数次的数字。有许多不同的方法。其中一种最简单的方法是执行 ZOR 操作。如果一个数字与其自身进行 XOR 操作,结果将为 0。因此,如果一个数字与偶数次进行 XOR 操作,结果将为 0,否则将为数字本身。
此解决方案有一个问题,如果有多个元素出现奇数次,它将返回其中一个元素。
算法
getNumOccurredOdd(arr, n)
begin res := 0 for each element e from arr, do res := res XOR e done return res end
示例
#include <iostream>
using namespace std;
int getNumOccurredOdd(int arr[], int n) {
int res = 0;
for (int i = 0; i < n; i++)
res = res ^ arr[i];
return res;
}
int main() {
int arr[] = {3, 4, 6, 5, 6, 3, 5, 4, 6, 3, 5, 5, 3};
int n = sizeof(arr)/sizeof(arr[0]);
cout << getNumOccurredOdd(arr, n) << " is present odd number of times";
}输出
6 is present odd number of times
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP