给定一个由n个正数组成的数组,任务是计算带有偶数和奇数乘积的有序对的数量。有序对意味着(a,b)和(b,a)是不同的。
例子:
Input: n = 3, arr[] = {1, 2, 7}
Output: Even product Pairs = 4, Odd product Pairs = 2
The ordered pairs are (1, 2), (1, 7), (2, 1), (7, 1), (2, 7), (7, 2)
Pairs with Odd product: (1, 7), (7, 1)
Pairs with Even product: (1, 2), (2, 7), (2, 1), (7, 2)
Input: n = 6, arr[] = {2, 4, 5, 9, 1, 8}
Output: Even product Pairs = 24, Odd product Pairs = 6
方法:
仅当两个数字均为奇数时,两个数字的乘积才为奇数。所以:
Number of odd product pairs = (count of odd numbers) * (count of odd numbers – 1)
并且偶数产品对的数量将是奇数产品对的数量的倒数。所以:
Number of even product pairs = Total Number of pairs – Number of odd product pairs
下面是上述方法的实现:
C++
// C++ implementation of the above approach
#include
using namespace std;
// function to count odd product pair
int count_odd_pair(int n, int a[])
{
int odd = 0, even = 0;
for (int i = 0; i < n; i++) {
// if number is even
if (a[i] % 2 == 0)
even++;
// if number is odd
else
odd++;
}
// count of ordered pairs
int ans = odd * (odd - 1);
return ans;
}
// function to count even product pair
int count_even_pair(int odd_product_pairs, int n)
{
int total_pairs = (n * (n - 1));
int ans = total_pairs - odd_product_pairs;
return ans ;
}
// Driver code
int main()
{
int n = 6;
int a[] = { 2, 4, 5, 9, 1, 8 };
int odd_product_pairs = count_odd_pair(n, a);
int even_product_pairs = count_even_pair(
odd_product_pairs, n);
cout << "Even Product Pairs = "
<< even_product_pairs
<< endl;
cout << "Odd Product Pairs= "
<< odd_product_pairs
<< endl;
return 0;
}
Java
// Java implementation of the above approach
import java.io.*;
class GFG {
// function to count odd product pair
static int count_odd_pair(int n, int a[])
{
int odd = 0, even = 0;
for (int i = 0; i < n; i++) {
// if number is even
if (a[i] % 2 == 0)
even++;
// if number is odd
else
odd++;
}
// count of ordered pairs
int ans = odd * (odd - 1);
return ans;
}
// function to count even product pair
static int count_even_pair(int odd_product_pairs, int n)
{
int total_pairs = (n * (n - 1));
int ans = total_pairs - odd_product_pairs;
return ans;
}
// Driver code
public static void main (String[] args) {
int n = 6;
int []a = { 2, 4, 5, 9, 1, 8 };
int odd_product_pairs = count_odd_pair(n, a);
int even_product_pairs = count_even_pair(
odd_product_pairs, n);
System.out.println( "Even Product Pairs = "+
even_product_pairs );
System.out.println("Odd Product Pairs= "+
odd_product_pairs );
}
}
//This Code is Contributed by ajit
Python3
# Python3 implementation of
# above approach
# function to count odd product pair
def count_odd_pair(n, a):
odd = 0
even = 0
for i in range(0,n):
# if number is even
if a[i] % 2==0:
even=even+1
# if number is odd
else:
odd=odd+1
# count of ordered pairs
ans = odd * (odd - 1)
return ans
# function to count even product pair
def count_even_pair(odd_product_pairs, n):
total_pairs = (n * (n - 1))
ans = total_pairs - odd_product_pairs
return ans
#Driver code
if __name__=='__main__':
n = 6
a = [2, 4, 5, 9, 1 ,8]
odd_product_pairs = count_odd_pair(n, a)
even_product_pairs = (count_even_pair
(odd_product_pairs, n))
print("Even Product Pairs = "
,even_product_pairs)
print("Odd Product Pairs= "
,odd_product_pairs)
# This code is contributed by
# Shashank_Sharma
C#
// C# implementation of the above approach
using System;
public class GFG{
// function to count odd product pair
static int count_odd_pair(int n, int []a)
{
int odd = 0, even = 0;
for (int i = 0; i < n; i++) {
// if number is even
if (a[i] % 2 == 0)
even++;
// if number is odd
else
odd++;
}
// count of ordered pairs
int ans = odd * (odd - 1);
return ans;
}
// function to count even product pair
static int count_even_pair(int odd_product_pairs, int n)
{
int total_pairs = (n * (n - 1));
int ans = total_pairs - odd_product_pairs;
return ans;
}
// Driver code
static public void Main (){
int n = 6;
int []a = { 2, 4, 5, 9, 1, 8 };
int odd_product_pairs = count_odd_pair(n, a);
int even_product_pairs = count_even_pair(
odd_product_pairs, n);
Console.WriteLine( "Even Product Pairs = "+
even_product_pairs );
Console.WriteLine("Odd Product Pairs= "+
odd_product_pairs );
}
}
PHP
Javascript
Even Product Pairs = 24
Odd Product Pairs= 6