📜  计算带偶数和奇数乘积的有序对的数量

📅  最后修改于: 2021-05-04 16:59:03             🧑  作者: Mango

给定一个由n个正数组成的数组,任务是计算带有偶数和奇数乘积的有序对的数量。有序对意味着(a,b)和(b,a)是不同的。
例子:

方法:
仅当两个数字均为奇数时,两个数字的乘积才为奇数。所以:

并且偶数产品对的数量将是奇数产品对的数量的倒数。所以:

下面是上述方法的实现:

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