C++ 中按位或运算结果为奇数的数对数


给定一个数组,我们必须找出按位或运算结果为奇数的数对。让我们来看一个示例。

输入

arr = [1, 2]

输出

1

只有唯一一对的按位或运算结果为奇数。这对数为 (1, 2)。

算法

  • 用随机数初始化数组。
  • 将计数初始化为 0。
  • 写两个循环来获取数组的数对。
    • 计算每对数之间的按位或运算。
    • 如果结果为奇数,则增加计数。
  • 返回计数。

实现

以下是在 C++ 中实现上述算法:

#include <bits/stdc++.h>
using namespace std;
int getOddPairsCount(int arr[], int n) {
   int count = 0;
   for (int i = 0; i < n; i++) {
      for (int j = i + 1; j < n; j++) {
         if ((arr[i] | arr[j]) % 2 != 0) {
            count++;
         }
      }
   }
   return count;
}
int main() {
   int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
   int n = 10;
   cout << getOddPairsCount(arr, n) << endl;
   return 0;
}

输出

如果你运行上述代码,你将看到以下结果。

35

更新时间: 2021-10-26

174 查看

开启你的 职业生涯

完成学习路径,获得认证

开始学习
广告