Sum of two numbers if the original ratio and new ratio obtained by adding a given number to each number is given
Last Updated :
13 Feb, 2022
Given a ratio a : b of two unknown numbers. When both the numbers are incremented by a given integer x, the ratio becomes c : d. The task is to find the sum of the two numbers.
Examples:
Input: a = 2, b = 3, c = 8, d = 9, x = 6
Output: 5
Original numbers are 2 and 3
Original ratio = 2:3
After adding 6, ratio becomes 8:9
2 + 3 = 5
Input: a = 1, b = 2, c = 9, d = 13, x = 5
Output: 12
Approach: Let the sum of the numbers be S. Then, the numbers can be (a * S)/(a + b) and (b * S)/(a + b).
Now, as given:
(((a * S) / (a + b)) + x) / (((b * S) / (a + b)) + x) = c / d
or ((a * S) + x * (a + b)) / ((b * S) + x * (a + b)) = c / d
So, S = (x * (a + b) * (c - d)) / (ad - bc)
Below is the implementation of the above approach:
C++
#include <bits/stdc++.h>
using namespace std;
double sum( double a, double b, double c, double d, double x)
{
double ans = (x * (a + b) * (c - d)) / ((a * d) - (b * c));
return ans;
}
int main()
{
double a = 1, b = 2, c = 9, d = 13, x = 5;
cout << sum(a, b, c, d, x);
return 0;
}
|
Java
class GFG
{
static double sum( double a, double b,
double c, double d,
double x)
{
double ans = (x * (a + b) * (c - d)) /
((a * d) - (b * c));
return ans;
}
public static void main (String[] args)
{
double a = 1 , b = 2 , c = 9 , d = 13 , x = 5 ;
System.out.println(sum(a, b, c, d, x));
}
}
|
Python3
def sum (a, b, c, d, x):
ans = ((x * (a + b) * (c - d)) /
((a * d) - (b * c)));
return ans;
if __name__ = = '__main__' :
a, b, c, d, x = 1 , 2 , 9 , 13 , 5 ;
print ( sum (a, b, c, d, x));
|
C#
using System;
class GFG
{
static double sum( double a, double b,
double c, double d,
double x)
{
double ans = (x * (a + b) * (c - d)) /
((a * d) - (b * c));
return ans;
}
public static void Main ()
{
double a = 1, b = 2,
c = 9, d = 13, x = 5;
Console.WriteLine(sum(a, b, c, d, x));
}
}
|
Javascript
<script>
function sum(a , b, c , d, x)
{
var ans = (x * (a + b) * (c - d)) /
((a * d) - (b * c));
return ans;
}
var a = 1, b = 2, c = 9, d = 13, x = 5;
document.write(sum(a, b, c, d, x));
</script>
|
Time Complexity: O(1)
Auxiliary Space: O(1)
Share your thoughts in the comments
Please Login to comment...