📌  相关文章
📜  数组的每个子集的元素的AND之间的最小值

📅  最后修改于: 2021-04-21 21:56:56             🧑  作者: Mango

给定一个整数数组,任务是找到该数组每个子集的所有元素的AND,并在所有这些元素中打印出最小AND值。

例子:

Input: arr[] = {1, 2, 3}
Output: 0
AND of all possible subsets 
(1 & 2) = 0,
(1 & 3) = 1,
(2 & 3) = 2 and 
(1 & 2 & 3) = 0. 
Minimum among these is 0. 

Input: arr[] = {7, 2}
Output: 2    

方法:数组任何子集的最小AND值将是数组所有元素的AND。因此,最简单的方法是在子数组的所有元素中查找AND。

下面是上述方法的实现:
执行:

C++
// C++ program for the above approach 
#include
using namespace std;
  
void minAND(int arr[], int n) 
{ 
  
    int s = arr[0]; 
  
    // Find AND of whole array 
    for (int i = 1; i < n; i++) 
    { 
        s = s & arr[i]; 
    } 
  
    // Print the answer 
    cout << (s) << endl; 
} 
      
// Driver code 
int main() 
{ 
    int arr[] = {1, 2, 3}; 
    int n = sizeof(arr)/sizeof(int); 
    minAND(arr, n); 
} 
  
// This code has been contributed by Arnab Kundu


Java
// Java program for the above approach
class GFG 
{
  
    static void minAND(int[] arr, int n) 
    {
  
        int s = arr[0];
  
        // Find AND of whole array
        for (int i = 1; i < n; i++) 
        {
            s = s & arr[i];
        }
  
        // Print the answer
        System.out.println(s);
    }
      
    // Driver code
    public static void main(String[] args) 
    {
        int[] arr = {1, 2, 3};
        int n = arr.length;
        minAND(arr, n);
    }
}
  
// This code has been contributed by 29AjayKumar


Python
# Python program for the above approach
def minAND(arr, n):
      
    s = arr[0]
      
    # Find AND of whole array
    for i in range(1, n):
        s = s & arr[i]
      
    # Print the answer
    print(s)
  
# Driver code
arr = [1, 2, 3]
n = len(arr)
minAND(arr, n)


C#
// C# program for the above approach
class GFG 
{
  
    static void minAND(int[] arr, int n) 
    {
  
        int s = arr[0];
  
        // Find AND of whole array
        for (int i = 1; i < n; i++) 
        {
            s = s & arr[i];
        }
  
        // Print the answer
        System.Console.WriteLine(s);
    }
      
    // Driver code
    static void Main() 
    {
        int[] arr = {1, 2, 3};
        int n = arr.Length;
        minAND(arr, n);
    }
}
  
// This code has been contributed by chandan_jnu


PHP


输出:
0