给定两个数字A,B。任务是查找A,B的特殊对的数量。两个A,B的特殊对是一对X,Y的对,它们同时满足两个给定条件– A = X | Y,B = X&Y。
例子:
Input: A = 3, B = 0
Output: 2
(0, 3), (1, 2) will satisfy the conditions
Input: A = 5, B = 7
Output: 0
方法:此处的主要观察结果是,如果我们希望两个数字X,Y的OR等于A。那么两个X,Y都必须小于或等于A。如果有人大于A,则OR等于不等于A。这将为我们提供循环终止的极限,休息时我们将尝试检查两对是否满足给定条件,然后将计数器增加。
以下是所需的实现:
C++
// C++ implementation of above approach
#include
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
输出:
2
如果您希望与行业专家一起参加现场课程,请参阅《 Geeks现场课程》和《 Geeks现场课程美国》。