Buy minimum items without change and given coins

You have an unlimited number of 10-rupee coins and exactly one coin of r rupee and you need to buy minimum items each of cost k such that you do not ask for change.

Examples:

Input: k = 15, r = 2
Output: 2
You should buy two cables and pay 2*15=30 rupees. It is obvious that you can pay this sum without any change.

Input: k = 237, r = 7
Output:1
It is enough for you to buy one cable.

It is obvious that we can pay for 10 items without any change (by paying the required amount of 10-rupee coins and not using the coin of r rupee). But perhaps you can buy fewer hammers and pay without any change. Note that you should buy at least one item.

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

#include <bits/stdc++.h>
using namespace std;
  
int minItems(int k, int r)
{
   // See if we can buy less than 10 items
   // Using 10 Rs coins and one r Rs coin
   for (int i = 1; i < 10; i++) 
        if ((i * k - r) % 10 == 0 ||
            (i * k) % 10 == 0) 
            return i;
  
    // We can always buy 10 items
    return 10;
}
  
int main()
{
    int k = 15;
    int r = 2;
    cout << minItems(k, r);
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java implementation of above approach
import java.util.*;
  
class GFG
{
static int minItems(int k, int r)
{
      
// See if we can buy less than 10 items
// Using 10 Rs coins and one r Rs coin
for (int i = 1; i < 10; i++) 
        if ((i * k - r) % 10 == 0 ||
            (i * k) % 10 == 0
            return i;
  
    // We can always buy 10 items
    return 10;
}
  
// Driver Code
public static void main(String args[])
{
    int k = 15;
    int r = 2;
    System.out.println(minItems(k, r));
}
}
  
// This code is contributed 
// by SURENDRA_GANGWAR

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 implementation of above approach
  
def minItems(k, r) :
  
    # See if we can buy less than 10 items 
    # Using 10 Rs coins and one r Rs coin 
    for i in range(1, 10) : 
            if ((i * k - r) % 10 == 0 or 
                (i * k) % 10 == 0) :
                return
      
    # We can always buy 10 items 
    return 10
      
# Driver Code
if __name__ == "__main__"
  
    k, r = 15 , 2
    print(minItems(k, r))
  
# This code is contributed by Ryuga

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# implementation of above approach
using System;
  
class GFG
{
static int minItems(int k, int r)
{
      
// See if we can buy less than 10 items
// Using 10 Rs coins and one r Rs coin
for (int i = 1; i < 10; i++) 
        if ((i * k - r) % 10 == 0 ||
            (i * k) % 10 == 0) 
            return i;
  
    // We can always buy 10 items
    return 10;
}
  
// Driver Code
public static void Main()
{
    int k = 15;
    int r = 2;
    Console.WriteLine(minItems(k, r));
}
}
  
// This code is contributed 
// by inder_verma

chevron_right


PHP

Output:

2


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.