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> |
2
Time Complexity : O(10), as 10 is constant so => O(1)
Auxiliary Space : O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!