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

filter_none

edit
close

play_arrow

link
brightness_4
code

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


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

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


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

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


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

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


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

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


Output:

2

Time Complexity: O(1)



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

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.