# Sum of two numbers if the original ratio and new ratio obtained by adding a given number to each number is given

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 / dor((a * S) + x * (a + b)) / ((b * S) + x * (a + b)) = c / dSo,S = (x * (a + b) * (c - d)) / (ad - bc)

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 sum of numbers ` `// which are in the ration a:b and after ` `// adding x to both the numbers ` `// the new ratio becomes c:d ` `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; ` `} ` ` ` `// Driver code ` `int` `main() ` `{ ` ` ` `double` `a = 1, b = 2, c = 9, d = 13, x = 5; ` ` ` ` ` `cout << sum(a, b, c, d, x); ` ` ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

## Java

`// Java implementation of the above approach ` `class` `GFG ` `{ ` ` ` ` ` `// Function to return the sum of numbers ` ` ` `// which are in the ration a:b and after ` ` ` `// adding x to both the numbers ` ` ` `// the new ratio becomes c:d ` ` ` `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; ` ` ` `} ` ` ` ` ` `// Driver code ` ` ` `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)); ` ` ` `} ` `} ` ` ` `// This code is contributed by ihritik ` |

*chevron_right*

*filter_none*

## Python3

`# Python3 implementation of the approach ` ` ` `# Function to return the sum of numbers ` `# which are in the ration a:b and after ` `# adding x to both the numbers ` `# the new ratio becomes c:d ` `def` `sum` `(a, b, c, d, x): ` ` ` ` ` `ans ` `=` `((x ` `*` `(a ` `+` `b) ` `*` `(c ` `-` `d)) ` `/` ` ` `((a ` `*` `d) ` `-` `(b ` `*` `c))); ` ` ` `return` `ans; ` ` ` `# Driver code ` `if` `__name__ ` `=` `=` `'__main__'` `: ` ` ` ` ` `a, b, c, d, x ` `=` `1` `, ` `2` `, ` `9` `, ` `13` `, ` `5` `; ` ` ` ` ` `print` `(` `sum` `(a, b, c, d, x)); ` ` ` `# This code is contributed by PrinciRaj1992 ` |

*chevron_right*

*filter_none*

## C#

`// C# implementation of the above approach ` `using` `System; ` ` ` `class` `GFG ` `{ ` ` ` ` ` `// Function to return the sum of numbers ` ` ` `// which are in the ration a:b and after ` ` ` `// adding x to both the numbers ` ` ` `// the new ratio becomes c:d ` ` ` `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; ` ` ` `} ` ` ` ` ` `// Driver code ` ` ` `public` `static` `void` `Main () ` ` ` `{ ` ` ` `double` `a = 1, b = 2, ` ` ` `c = 9, d = 13, x = 5; ` ` ` ` ` `Console.WriteLine(sum(a, b, c, d, x)); ` ` ` `} ` `} ` ` ` `// This code is contributed by ihritik ` |

*chevron_right*

*filter_none*

**Output:**

12