# Minimum value to be added to X such that it is at least Y percent of N

Given three integers **N**, **X** and **Y**, the task is to find the minimum integer that should be added to **X** to make it at least **Y** percent of **N**.

**Examples:**

Input:N = 10, X = 2, Y = 40

Output:2

Adding 2 to X gives 4 which is 40% of 10

Input:N = 10, X = 2, Y = 20

Output:0

X is already 20% of 10

**Approach:** Find **val = (N * Y) / 100 ** which is the **Y** percent of **N**. Now in order for **X** to be equal to **val**, **val – X** must be added to **X** only if **X < val**.

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 value ` `// that must be added to x so that ` `// it is at least y percent of n ` `int` `minValue(` `int` `n, ` `int` `x, ` `int` `y) ` `{ ` ` ` ` ` `// Required value ` ` ` `float` `val = (y * n) / 100; ` ` ` ` ` `// If x is already >= y percent of n ` ` ` `if` `(x >= val) ` ` ` `return` `0; ` ` ` `else` ` ` `return` `(` `ceil` `(val) - x); ` `} ` ` ` `// Driver code ` `int` `main() ` `{ ` ` ` `int` `n = 10, x = 2, y = 40; ` ` ` `cout << minValue(n, x, y); ` `} ` |

*chevron_right*

*filter_none*

## Java

`// Java implementation of the approach ` `import` `java.lang.Math; ` ` ` `class` `GFG ` `{ ` ` ` `// Function to return the required value ` `// that must be added to x so that ` `// it is at least y percent of n ` `static` `int` `minValue(` `int` `n, ` `int` `x, ` `int` `y) ` `{ ` ` ` ` ` `// Required value ` ` ` `float` `val = (y * n) / ` `100` `; ` ` ` ` ` `// If x is already >= y percent of n ` ` ` `if` `(x >= val) ` ` ` `return` `0` `; ` ` ` `else` ` ` `return` `(` `int` `)(Math.ceil(val)-x); ` `} ` ` ` `// Driver code ` `public` `static` `void` `main(String[] args) ` `{ ` ` ` `int` `n = ` `10` `, x = ` `2` `, y = ` `40` `; ` ` ` `System.out.println(minValue(n, x, y)); ` `} ` `} ` ` ` `// This code is contributed by Code_Mech. ` |

*chevron_right*

*filter_none*

## Python3

`import` `math ` ` ` `# Function to return the required value ` `# that must be added to x so that ` `# it is at least y percent of n ` `def` `minValue(n, x, y): ` ` ` ` ` `# Required value ` ` ` `val ` `=` `(y ` `*` `n)` `/` `100` ` ` ` ` `# If x is already >= y percent of n ` ` ` `if` `x >` `=` `val: ` ` ` `return` `0` ` ` `else` `: ` ` ` `return` `math.ceil(val) ` `-` `x ` ` ` `# Driver code ` `n ` `=` `10` `; x ` `=` `2` `; y ` `=` `40` `print` `(minValue(n, x, y)) ` ` ` ` ` `# This code is contributed by Shrikant13 ` |

*chevron_right*

*filter_none*

## C#

`// C# implementation of the approach ` `using` `System; ` ` ` `class` `GFG ` `{ ` ` ` ` ` `// Function to return the required value ` ` ` `// that must be added to x so that ` ` ` `// it is at least y percent of n ` ` ` `static` `int` `minValue(` `int` `n, ` `int` `x, ` `int` `y) ` ` ` `{ ` ` ` ` ` `// Required value ` ` ` `float` `val = (y * n) / 100; ` ` ` ` ` `// If x is already >= y percent of n ` ` ` `if` `(x >= val) ` ` ` `return` `0; ` ` ` `else` ` ` `return` `(` `int` `)(Math.Ceiling(val)-x) ; ` ` ` `} ` ` ` ` ` `// Driver code ` ` ` `public` `static` `void` `Main() ` ` ` `{ ` ` ` `int` `n = 10, x = 2, y = 40; ` ` ` `Console.WriteLine((` `int` `)minValue(n, x, y)); ` ` ` `} ` `} ` ` ` `// This code is contributed by Ryuga. ` |

*chevron_right*

*filter_none*

## PHP

`<?php ` ` ` `// php implementation of the approach ` `// Function to return the required value ` `// that must be added to x so that ` `// it is at least y percent of n ` `function` `minValue(` `$n` `, ` `$x` `, ` `$y` `) ` `{ ` ` ` ` ` `// Required value ` ` ` `$val` `= (` `$y` `* ` `$n` `) / 100; ` ` ` ` ` `// If x is already >= y percent of n ` ` ` `if` `(` `$x` `>= ` `$val` `) ` ` ` `return` `0; ` ` ` `else` ` ` `return` `(` `ceil` `(` `$val` `) - ` `$x` `); ` `} ` ` ` `// Driver code ` `{ ` ` ` `$n` `= 10; ` `$x` `= 2; ` `$y` `= 40; ` ` ` `echo` `(minValue(` `$n` `, ` `$x` `, ` `$y` `)); ` `} ` ` ` `// This code is contributed by Code_Mech. ` |

*chevron_right*

*filter_none*

**Output:**

2

**Time Complexity:** O(1)

## Recommended Posts:

- Minimum elements to be added so that two matrices can be multiplied
- Minimum number of Parentheses to be added to make it valid
- Minimum edges to be added in a directed graph so that any node can be reachable from a given node
- Minimum elements to be added in a range so that count of elements is divisible by K
- Maximum difference elements that can added to a set
- Print elements that can be added to form a given sum
- Find the integers that doesnot ends with T1 or T2 when squared and added X
- Find amount to be added to achieve target ratio in a given mixture
- Find ΔX which is added to numerator and denominator both of fraction (a/b) to convert it to another fraction (c/d)
- Find the number which when added to the given ratio a : b, the ratio changes to c : d
- Minimum LCM and GCD possible among all possible sub-arrays
- Find the value of N when F(N) = f(a)+f(b) where a+b is the minimum possible and a*b = N
- Find minimum x such that (x % k) * (x / k) == n | Set-2
- Find minimum x such that (x % k) * (x / k) == n
- Minimum value possible of a given function from the given set

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.