Open In App
Related Articles

Find amount to be added to achieve target ratio in a given mixture

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report

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:  

C++

#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

// 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

// 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

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

// 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

                    

Javascript

<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
// 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
?>

                    

Output
Water to be added = 25.00

Time Complexity: O(1)

Auxiliary Space: O(1)



Last Updated : 09 Nov, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads