计算奇数和偶数的有序对的数量
给定一个 n 个正数的数组,任务是计算奇数和偶数的有序对的数量。 例:
输入: arr[] = {1,2,4} 输出:偶和对= 2,奇和对= 4 有序对是(1,2),(1,4),(2,1),(4,1),(2,4),(4,2) 偶和对:(2,4),(4,2) 奇和对:(1,2),(1,4),(2,1),(4,1) 输入: arr[]
方法: 如果一个数是奇数,另一个数是偶数,那么两个数之和就是奇数。所以现在我们要数偶数和奇数。由于顺序对(a,b)和(b,a)都被视为不同的对,因此
奇数对和数=(偶数计数)(奇数计数) 2
这是因为每个偶数可以和每个奇数配对,每个奇数可以和每个偶数配对。这样,在答案中乘 2 就完成了。 偶数和对的数量将是奇数和对的数量的倒数。因此:
偶和对的数量=对的总数–奇和对的数量
以下是上述方法的实现:
卡片打印处理机(Card Print Processor 的缩写)
// C++ implementation of the above approach
#include <bits/stdc++.h>
using namespace std;
// function to count odd sum 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 * even * 2;
return ans;
}
// function to count even sum pair
int count_even_pair(int odd_sum_pairs, int n)
{
int total_pairs = (n * (n - 1));
int ans = total_pairs - odd_sum_pairs;
return ans;
}
// Driver code
int main()
{
int n = 6;
int a[] = { 2, 4, 5, 9, 1, 8 };
int odd_sum_pairs = count_odd_pair(n, a);
int even_sum_pairs = count_even_pair(
odd_sum_pairs, n);
cout << "Even Sum Pairs = "
<< even_sum_pairs
<< endl;
cout << "Odd Sum Pairs= "
<< odd_sum_pairs
<< endl;
return 0;
}
Java 语言(一种计算机语言,尤用于创建网站)
// Java implementation of the above approach
class GFG
{
// function to count odd sum 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 * even * 2;
return ans;
}
// function to count even sum pair
static int count_even_pair(int odd_sum_pairs, int n)
{
int total_pairs = (n * (n - 1));
int ans = total_pairs - odd_sum_pairs;
return ans;
}
// Driver code
public static void main(String []args)
{
int n = 6;
int []a = { 2, 4, 5, 9, 1, 8 };
int odd_sum_pairs = count_odd_pair(n, a);
int even_sum_pairs = count_even_pair( odd_sum_pairs, n);
System.out.println("Even Sum Pairs = " + even_sum_pairs);
System.out.println("Odd Sum Pairs= " + odd_sum_pairs);
}
}
// This code is contributed by ihritik
Python 3
# Pytho3 implementation of the above approach
# function to count odd sum 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 * even * 2
return ans
# function to count even sum pair
def count_even_pair( odd_sum_pairs, n):
total_pairs = ( n * ( n - 1))
ans = total_pairs - odd_sum_pairs
return ans
# Driver code
n = 6
a = [2, 4, 5, 9, 1, 8]
odd_sum_pairs = count_odd_pair( n, a)
even_sum_pairs = count_even_pair( odd_sum_pairs, n)
print("Even Sum Pairs =", even_sum_pairs)
print("Odd Sum Pairs=", odd_sum_pairs)
# This code is contributed by ihritik
C
// C# implementation of the above approach
using System;
class GFG
{
// function to count odd sum 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 * even * 2;
return ans;
}
// function to count even sum pair
static int count_even_pair(int odd_sum_pairs, int n)
{
int total_pairs = (n * (n - 1));
int ans = total_pairs - odd_sum_pairs;
return ans;
}
// Driver code
public static void Main()
{
int n = 6;
int []a = { 2, 4, 5, 9, 1, 8 };
int odd_sum_pairs = count_odd_pair(n, a);
int even_sum_pairs = count_even_pair( odd_sum_pairs, n);
Console.WriteLine("Even Sum Pairs = " + even_sum_pairs);
Console.WriteLine("Odd Sum Pairs= " + odd_sum_pairs);
}
}
// This code is contributed by ihritik
服务器端编程语言(Professional Hypertext Preprocessor 的缩写)
<?php
// PHP implementation of the above approach
// function to count odd sum pair
function count_odd_pair($n, $a)
{
$odd = 0;
$even = 0;
for ($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
$ans = $odd * $even * 2;
return $ans;
}
// function to count even sum pair
function count_even_pair($odd_sum_pairs, $n)
{
$total_pairs = ($n * ($n - 1));
$ans = $total_pairs - $odd_sum_pairs;
return $ans;
}
// Driver code
$n = 6;
$a = array( 2, 4, 5, 9, 1, 8 );
$odd_sum_pairs = count_odd_pair($n, $a);
$even_sum_pairs = count_even_pair($odd_sum_pairs, $n);
echo "Even Sum Pairs = $even_sum_pairs \n";
echo "Odd Sum Pairs= $odd_sum_pairs \n";
// This code is contributed by ihritik
?>
java 描述语言
<script>
// JavaScript implementation of the above approach
// function to count odd sum pair
function count_odd_pair(n, a)
{
var odd = 0, even = 0;
for (var 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
var ans = odd * even * 2;
return ans;
}
// function to count even sum pair
function count_even_pair(odd_sum_pairs, n)
{
var total_pairs = (n * (n - 1));
var ans = total_pairs - odd_sum_pairs;
return ans;
}
// Driver code
var n = 6;
var a = [2, 4, 5, 9, 1, 8];
var odd_sum_pairs = count_odd_pair(n, a);
var even_sum_pairs = count_even_pair(
odd_sum_pairs, n);
document.write( "Even Sum Pairs = "
+ even_sum_pairs + "<br>");
document.write( "Odd Sum Pairs = "
+ odd_sum_pairs + "<br>");
</script>
Output:
Even Sum Pairs = 12
Odd Sum Pairs= 18
版权属于:月萌API www.moonapi.com,转载请注明出处