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

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 Xint getX(int a, int b, int c, int d){ int X = (b * c - a * d) / (d - c); return X;}// Driver codeint main(){ int a = 2, b = 3, c = 4, d = 5; cout << getX(a, b, c, d); return 0;} |
Java
// Java implementation of the approachimport java.io.*;class GFG { // Function to return the// required number Xstatic int getX(int a, int b, int c, int d){ int X = (b * c - a * d) / (d - c); return X;}// Driver codepublic 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 Xdef getX(a, b, c, d): X = (b * c - a * d) // (d - c) return X# Driver codea = 2b = 3c = 4d = 5print(getX(a, b, c, d))# This code is contributed by mohit kumar 29 |
C#
// C# implementation of the approachusing System;class GFG{ // Function to return the// required number Xstatic int getX(int a, int b, int c, int d){ int X = (b * c - a * d) / (d - c); return X;}// Driver codestatic 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
<script>// javascript implementation of the approach // Function to return the// required number Xfunction getX(a , b , c , d){ var X = (b * c - a * d) / (d - c); return X;}// Driver codevar a = 2, b = 3, c = 4, d = 5;document.write(getX(a, b, c, d));// This code is contributed by 29AjayKumar </script> |
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.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!



