Número de pares especiales posibles de los dos números dados

Dados dos números A, B. La tarea es encontrar los números de pares especiales de A, B. Un par especial de dos números A, B es un par de números X, Y que satisface ambas condiciones dadas: A = X | Y, B = X e Y.
Ejemplos: 
 

Input: A = 3, B = 0
Output: 2
(0, 3), (1, 2) will satisfy the conditions

Input:  A = 5, B = 7
Output: 0

Enfoque: La observación clave aquí es que si queremos que el OR de dos números, X, Y sea igual a A. Entonces ambos, X, Y tienen que ser menores o iguales a A. Si cualquiera es mayor que A, entonces hay OR ganado ‘t ser igual a A. Esto nos dará los límites donde terminará nuestro bucle, resto, intentaremos verificar si dos pares cumplen con la condición dada, luego incrementaremos el contador.
A continuación se muestra la implementación requerida: 
 

C++

// C++ implementation of above approach
#include <iostream>
using namespace std;
 
// Function to count the pairs
int countPairs(int A, int B)
{
 
    // Variable to store a number of special pairs
    int cnt = 0;
 
    for (int i = 0; i <= A; ++i) {
        for (int j = i; j <= A; ++j) {
            // Calculating AND of i, j
            int AND = i & j;
 
            // Calculating OR of i, j
            int OR = i | j;
 
            // If the conditions are met,
            // then increment the count of special pairs
            if (OR == A and AND == B) {
                cnt++;
            }
        }
    }
    return cnt;
}
 
// Driver code
int main()
{
    int A = 3, B = 0;
    cout << countPairs(A, B);
 
    return 0;
}

Java

// Java implementation of above approach
class GFG
{
 
// Function to count the pairs
static int countPairs(int A, int B)
{
 
    // Variable to store a number
    // of special pairs
    int cnt = 0;
 
    for (int i = 0; i <= A; ++i)
    {
        for (int j = i; j <= A; ++j)
        {
            // Calculating AND of i, j
            int AND = i & j;
 
            // Calculating OR of i, j
            int OR = i | j;
 
            // If the conditions are met,
            // then increment the count
            // of special pairs
            if (OR == A && AND == B)
            {
                cnt++;
            }
        }
    }
    return cnt;
}
 
// Driver code
public static void main(String [] args)
{
    int A = 3, B = 0;
    System.out.println(countPairs(A, B));
}
}
 
// This code is contributed by ihritik

Python3

# Python3 implementation of above
# approach
 
# Function to count the pairs
def countPairs(A,B):
 
    # Variable to store a number
    # of special pairs
    cnt=0
    for i in range(0,A+1):
        for j in range(i,A+1):
 
            # Calculating AND of i, j
            AND = i&j
            OR = i|j
 
            # If the conditions are met,
            # then increment the count of
            # special pairs
            if(OR==A and AND==B):
                cnt +=1
    return cnt
 
if __name__=='__main__':
    A = 3
    B = 0
    print(countPairs(A,B))
 
# This code is contributed by
# Shrikant13

C#

// C# implementation of above approach
using System;
 
class GFG
{
     
// Function to count the pairs
static int countPairs(int A, int B)
{
 
    // Variable to store a number
    // of special pairs
    int cnt = 0;
 
    for (int i = 0; i <= A; ++i)
    {
        for (int j = i; j <= A; ++j)
        {
            // Calculating AND of i, j
            int AND = i & j;
 
            // Calculating OR of i, j
            int OR = i | j;
 
            // If the conditions are met,
            // then increment the count
            // of special pairs
            if (OR == A && AND == B)
            {
                cnt++;
            }
        }
    }
    return cnt;
}
 
// Driver code
public static void Main()
{
    int A = 3, B = 0;
    Console.WriteLine(countPairs(A, B));
}
}
 
// This code is contributed by ihritik

PHP

<?php
// PHP implementation of above approach
 
// Function to count the pairs
function countPairs($A, $B)
{
 
    // Variable to store a number
    // of special pairs
    $cnt = 0;
 
    for ($i = 0; $i <= $A; ++$i)
    {
        for ($j = $i; $j <= $A; ++$j)
        {
            // Calculating AND of i, j
            $AND = $i & $j;
 
            // Calculating OR of i, j
            $OR = $i | $j;
 
            // If the conditions are met,
            // then increment the count
            // of special pairs
            if ($OR == $A && $AND == $B)
            {
                $cnt++;
            }
        }
    }
    return $cnt;
}
         
// Driver code
$A = 3;
$B = 0;
echo countPairs($A, $B);
 
// This code is contributed by ihritik
?>

Javascript

<script>
// Javascript implementation of above approach
 
 
// Function to count the pairs
function countPairs(A, B) {
 
    // Variable to store a number of special pairs
    let cnt = 0;
 
    for (let i = 0; i <= A; ++i) {
        for (let j = i; j <= A; ++j) {
            // Calculating AND of i, j
            let AND = i & j;
 
            // Calculating OR of i, j
            let OR = i | j;
 
            // If the conditions are met,
            // then increment the count of special pairs
            if (OR == A && AND == B) {
                cnt++;
            }
        }
    }
    return cnt;
}
 
// Driver code
 
let A = 3, B = 0;
document.write(countPairs(A, B));
 
 
// This code is contributed by _saurabh_jaiswal
<script>
Producción: 

2

 

Publicación traducida automáticamente

Artículo escrito por imdhruvgupta y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *