# 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 = 6Output:5

Original numbers are 2 and 3

Original ratio = 2:3

After adding 6, ratio becomes 8:9

2 + 3 = 5Input:a = 1, b = 2, c = 9, d = 13, x = 5Output: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;` `}` |

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

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

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

## Javascript

`<script>` `// javascript implementation of the above 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` `function` `sum(a , b, c , d, x)` `{` ` ` `var` `ans = (x * (a + b) * (c - d)) /` ` ` `((a * d) - (b * c));` ` ` `return` `ans;` `}` `// Driver code` `var` `a = 1, b = 2, c = 9, d = 13, x = 5;` `document.write(sum(a, b, c, d, x));` `// This code is contributed by 29AjayKumar` `</script>` |

**Output:**

12

**Time Complexity: **O(1)

**Auxiliary Space: **O(1)