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:6

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:2

**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 <bits/stdc++.h> ` `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; ` `} ` |

*chevron_right*

*filter_none*

## 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 ` |

*chevron_right*

*filter_none*

## 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 ` |

*chevron_right*

*filter_none*

## 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. ` |

*chevron_right*

*filter_none*

**Output:**

2

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready.

## Recommended Posts:

- Sum of two numbers if the original ratio and new ratio obtained by adding a given number to each number is given
- Find amount to be added to achieve target ratio in a given mixture
- Ratio of mth and nth terms of an A. P. with given ratio of sums
- Find ΔX which is added to numerator and denominator both of fraction (a/b) to convert it to another fraction (c/d)
- Find the minimum number to be added to N to make it a prime number
- Minimum number of changes required to make the given array an AP
- Find the minimum number to be added to N to make it a power of K
- Minimize elements to be added to a given array such that it contains another given array as its subsequence | Set 2
- Minimum number to be added to minimize LCM of two given numbers
- Find the integers that doesnot ends with T1 or T2 when squared and added X
- Minimum number of changes such that elements are first Negative and then Positive
- Minimum edges to be added in a directed graph so that any node can be reachable from a given node
- Queries to minimize sum added to given ranges in an array to make their Bitwise AND non-zero
- Minimum number to be added to all digits of X to make X > Y
- Least number to be added to or subtracted from N to make it a Perfect Square
- Least number to be added to or subtracted from N to make it a Perfect Cube
- Smallest number to be added in first Array modulo M to make frequencies of both Arrays equal
- Find if it is possible to get a ratio from given ranges of costs and quantities
- Program to find the count of coins of each type from the given ratio
- Find the ratio of LCM to GCD of a given Array

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.