Open In App

Find the ratio of number of elements in two Arrays from their individual and combined average

Given the average of elements in two arrays as ‘a’ and ‘b’ respectively, and their combined average as ‘c’, the task is to find the ratio of the number of elements in two array.
Examples: 
 

Input:  a = 2, b = 8, c = 5
Output: 1:1

Input: a = 4, b = 10, c = 6
Output: 2:1


 




Approach: 
 


Below is the implementation of the above Approach: 
 



// C++ program to Find the Ratio
// of number of Elements in two Arrays
// from their individual and combined Average
 
#include <bits/stdc++.h>
using namespace std;
 
// C++ function to find the ratio
// of number of array elements
void FindRatio(int a, int b, int c)
{
 
    int up = abs(b - c);
    int down = abs(c - a);
 
    // calculating GCD of them
    int g = __gcd(up, down);
 
    // make neumarator and
    // denominator coprime
    up /= g;
    down /= g;
 
    cout << up << ":"
         << down << "\n";
}
 
// Driver Code
int main()
{
 
    int a = 4, b = 10, c = 6;
 
    FindRatio(a, b, c);
 
    return 0;
}

                    
// Java program to Find the Ratio
// of number of Elements in two Arrays
// from their individual and combined Average
class GFG
{
    static int gcd(int a, int b)
    {
        if (b == 0)
            return a;
        return gcd(b, a % b);
         
    }
     
    // function to find the ratio
    // of number of array elements
    static void FindRatio(int a, int b, int c)
    {
        int up = Math.abs(b - c);
        int down = Math.abs(c - a);
     
        // calculating GCD of them
        int g = gcd(up, down);
     
        // make neumarator and
        // denominator coprime
        up /= g;
        down /= g;
     
        System.out.println(up + ":" + down);
    }
     
    // Driver Code
    public static void main (String[] args)
    {
        int a = 4, b = 10, c = 6;
     
        FindRatio(a, b, c);
    }
}
 
// This code is contributed by AnkitRai01

                    
# Python3 program to Find the Ratio
# of number of Elements in two Arrays
# from their individual and combined Average
from math import gcd
 
# function to find the ratio
# of number of array elements
def FindRatio(a, b, c):
 
    up = abs(b - c)
    down = abs(c - a)
 
    # calculating GCD of them
    g = gcd(up, down)
 
    # make neumarator and
    # denominator coprime
    up //= g
    down //= g
 
    print(up,":", down)
 
# Driver Code
a = 4
b = 10
c = 6
 
FindRatio(a, b, c)
 
# This code is contributed by Mohit Kumar

                    
// C# program to Find the Ratio
// of number of Elements in two Arrays
// from their individual and combined Average
using System;
 
class GFG
{
    static int gcd(int a, int b)
    {
        if (b == 0)
            return a;
        return gcd(b, a % b);
         
    }
     
    // function to find the ratio
    // of number of array elements
    static void FindRatio(int a, int b, int c)
    {
        int up = Math.Abs(b - c);
        int down = Math.Abs(c - a);
     
        // calculating GCD of them
        int g = gcd(up, down);
     
        // make neumarator and
        // denominator coprime
        up /= g;
        down /= g;
     
        Console.WriteLine(up + ":" + down);
    }
     
    // Driver Code
    public static void Main (String []args)
    {
        int a = 4, b = 10, c = 6;
     
        FindRatio(a, b, c);
    }
}
 
// This code is contributed by Arnab Kundu

                    
<script>
// Javascript program to Find the Ratio
// of number of Elements in two Arrays
// from their individual and combined Average
 
// Javascript function to find the ratio
// of number of array elements
function FindRatio(a, b, c)
{
 
    let up = Math.abs(b - c);
    let down = Math.abs(c - a);
 
    // calculating GCD of them
    let g = gcd(up, down);
 
    // make neumarator and
    // denominator coprime
    up = parseInt(up / g);
    down = parseInt(down / g);
 
    document.write(up + ":"
         + down + "<br>");
}
 
function gcd(a, b)
{
  if (b == 0)
      return a;
  return gcd(b, a % b);
 
}
 
// Driver Code
 
    let a = 4, b = 10, c = 6;
 
    FindRatio(a, b, c);
 
</script>

                    

Output: 
2:1

 

Time Complexity: O(log( min(abs(b-c),abs(c-a)) ) )

Auxiliary Space: O(1)


Article Tags :