# Find the number which when added to the given ratio a : b, the ratio changes to c : d

Last Updated : 31 May, 2022

Given four integers a, b, c and d. The task is to find the number X which when added to the numbers a and b the ratio changes from a : b to c : d.
Examples:

Input: a = 3, b = 6, c = 3, d = 4
Output:
When 6 is added to a and b
a = 3 + 6 = 9
b = 6 + 6 = 12
And, the new ratio will be 9 : 12 = 3 : 4
Input: a = 2, b = 3, c = 4, d = 5
Output:

Approach: Old ratio is a : b and new ratio is c : d. Let the required number be X
So, (a + X) / (b + X) = c / d
or, ad + dx = bc + cx
or, x(d – c) = bc – ad
So, x = (bc – ad) / (d – c)
Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach` `#include ` `using` `namespace` `std;`   `// Function to return the` `// required number X` `int` `getX(``int` `a, ``int` `b, ``int` `c, ``int` `d)` `{` `    ``int` `X = (b * c - a * d) / (d - c);` `    ``return` `X;` `}`   `// Driver code` `int` `main()` `{` `    ``int` `a = 2, b = 3, c = 4, d = 5;`   `    ``cout << getX(a, b, c, d);`   `    ``return` `0;` `}`

## Java

 `// Java implementation of the approach` `import` `java.io.*;`   `class` `GFG ` `{` `    `  `// Function to return the` `// required number X` `static` `int` `getX(``int` `a, ``int` `b, ``int` `c, ``int` `d)` `{` `    ``int` `X = (b * c - a * d) / (d - c);` `    ``return` `X;` `}`   `// Driver code` `public` `static` `void` `main (String[] args) ` `{`   `    ``int` `a = ``2``, b = ``3``, c = ``4``, d = ``5``;` `    ``System.out.println (getX(a, b, c, d));`   `}` `}`   `// The code is contributed by ajit..@23 `

## Python

 `# Python3 implementation of the approach`   `# Function to return the` `# required number X` `def` `getX(a, b, c, d):`   `    ``X ``=` `(b ``*` `c ``-` `a ``*` `d) ``/``/` `(d ``-` `c)` `    ``return` `X`   `# Driver code`   `a ``=` `2` `b ``=` `3` `c ``=` `4` `d ``=` `5`   `print``(getX(a, b, c, d))`   `# This code is contributed by mohit kumar 29`

## C#

 `// C# implementation of the approach` `using` `System;`   `class` `GFG` `{` `    `  `// Function to return the` `// required number X` `static` `int` `getX(``int` `a, ``int` `b, ``int` `c, ``int` `d)` `{` `    ``int` `X = (b * c - a * d) / (d - c);` `    ``return` `X;` `}`   `// Driver code` `static` `public` `void` `Main ()` `{` `    ``int` `a = 2, b = 3, c = 4, d = 5;` `    ``Console.Write(getX(a, b, c, d));` `}` `}`   `// The code is contributed by Tushil.`

## Javascript

 ``

Output:

`2`

Time Complexity: O(1), since there is a basic arithmetic operation that takes constant time.

Auxiliary Space: O(1), since no extra space has been taken.