根据问题,我们给定了一个包含n个正整数的数组,我们需要从数组中找到具有最大AND值的一对。
示例
Input: arr[] = { 4, 8, 12, 16 }
Output: pair = 8 12
The maximum and value= 8
Input:arr[] = { 4, 8, 16, 2 }
Output: pair = No possible AND
The maximum and value = 0
登录后复制
寻找最大AND值的方法类似于在数组中寻找最大AND值。程序必须找到导致得到的AND值的元素对。为了找到这些元素,只需遍历整个数组,并找到每个元素与得到的最大AND值(结果)的AND值,如果arr[i] & result == result,则表示arr[i]是将生成最大AND值的元素。此外,在最大AND值(结果)为零的情况下,我们应该打印“不可能”。
算法
int checkBit(int pattern, int arr[], int n)
START
STEP 1: DECLARE AND INITIALIZE count AS 0
STEP 2: LOOP FOR i = 0 AND i = 0 AND bit--
count = GOTO FUNCTION checkBit(res | (1 = 2 THEN,
res |= (1