Wednesday, July 3, 2024
HomeData ModellingData Structure & AlgorithmBuy minimum items without change and given coins

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




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


Java




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


Python3




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


C#




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


PHP




<?php
// See if we can buy less than 10 items
// Using 10 Rs coins and one r Rs coin
function minItems($k, $r)
{
    for ($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
$k = 15;
$r = 2;
echo minItems($k, $r);
 
// This code is contributed by Rajput-Ji
?>


Javascript




<script>
 
// Javascript program of the above approach
 
function minItems(k, r)
{
     
// See if we can buy less than 10 items
// Using 10 Rs coins and one r Rs coin
for (let 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
 
    let k = 15;
    let r = 2;
    document.write(minItems(k, r));
 
</script>


Output: 

2

 

Time Complexity : O(10), as 10 is constant so => O(1)
Auxiliary Space : O(1)

Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

Nango Kalahttps://www.kala.co.za
Experienced Support Engineer with a demonstrated history of working in the information technology and services industry. Skilled in Microsoft Excel, Customer Service, Microsoft Word, Technical Support, and Microsoft Office. Strong information technology professional with a Microsoft Certificate Solutions Expert (Privet Cloud) focused in Information Technology from Broadband Collage Of Technology.
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments