You are given a container of X liters containing a mixture of wine and water. The mixture contains W% of water in it. How many liters of water must be added to increase the ratio of water to Y%?
The input includes 3 integers: X, W, and Y respectively.
The output should be in float format up to 2 decimal points.
Examples:
Input : X = 125, W = 20, Y = 25
Output : 8.33 liters
20% of 125 is 25. If we add 8.33 liters, we get 33.33, which is 25% of 133.33.Input : X = 100, W = 50, Y = 60
Output : 25
Let the amount of water to be added be A liters.
So, the new amount of mixture = (X + A) liters
And the amount of water in the mixture = (old amount + A) = ((W % of X ) + A )
Also, the amount of water in the mixture = new percentage of water in the new mixture = Y % of (X + A)
Now, we can write the expression as
———————————
Y % of ( X + A) = W % of X + A
———————————-
Since, both denote the amount of water.
By simplifying this expression, we will get
A = [X * (Y – W)] / [100 – Y]
Illustration :
X = 125, W = 20% and Y = 25%;
So, for the given question, the amount of water to be added = (125 * (25 – 20)) / (100 – 25) = 8.33 liters.
Below is the implementation of the above approach:
#include <iostream> #include <iomanip> using namespace std;
float findAmount( float X, float W, float Y) {
return (X * (Y - W)) / (100 - Y);
} int main() {
float X = 100, W = 50, Y = 60;
std::cout << "Water to be added = " << fixed << setprecision(2) << findAmount(X, W, Y);
return 0;
} |
// C program to find amount of water to // be added to achieve given target ratio. #include <stdio.h> float findAmount( float X, float W, float Y)
{ return (X * (Y - W)) / (100 - Y);
} int main()
{ float X = 100, W = 50, Y = 60;
printf ( "Water to be added = %.2f " ,
findAmount(X, W, Y));
return 0;
} |
// Java program to find amount of water to // be added to achieve given target ratio. public class GFG {
static float findAmount( float X, float W, float Y)
{
return (X * (Y - W)) / ( 100 - Y);
}
// Driver code
public static void main(String args[])
{
float X = 100 , W = 50 , Y = 60 ;
System.out.println( "Water to be added = " + findAmount(X, W, Y));
}
// This code is contributed by ANKITRAI1
} |
# Python3 program to find amount # of water to be added to achieve # given target ratio. def findAmount(X, W, Y):
return (X * (Y - W) / ( 100 - Y))
X = 100
W = 50 ; Y = 60
print ( "Water to be added" ,
findAmount(X, W, Y))
# This code is contributed # by Shrikant13 |
// C# program to find amount of water to // be added to achieve given target ratio. using System;
class GFG
{ public static double findAmount( double X,
double W,
double Y)
{ return (X * (Y - W)) / (100 - Y);
} // Driver code public static void Main()
{ double X = 100, W = 50, Y = 60;
Console.WriteLine( "Water to be added = {0}" ,
findAmount(X, W, Y));
} } // This code is contributed by Soumik |
<script> // Javascript program to find amount of water to
// be added to achieve given target ratio.
function findAmount(X, W, Y)
{
return (X * (Y - W)) / (100 - Y);
}
let X = 100, W = 50, Y = 60;
document.write( "Water to be added = " + findAmount(X, W, Y).toFixed(2));
</script> |
<?php // PHP program to find amount of water to // be added to achieve given target ratio. function findAmount( $X , $W , $Y )
{ return ( $X * ( $Y - $W )) / (100 - $Y );
} // Driver Code $X = 100; $W = 50; $Y = 60;
echo "Water to be added = " .
findAmount( $X , $W , $Y );
// This code is contributed // by Akanksha Rai ?> |
Water to be added = 25.00
Time Complexity: O(1)
Auxiliary Space: O(1)