Python Program for Coin Distribution Problem

Python Program for Coin Distribution Problem

Coin Distribution Problem

Here on this page we have provided  a previous year coding problem that was asked in TCS CodeVita Coding Competition i.e; Coin Distribution Problem, in this problem we have to find out the minimum number of coins needed, for generating a specific value. Let’s see how to code a Python Program for Coin Distribution Problem

Problem Statement

Find the minimum number of coins required to form any value between 1 to N,both inclusive.Cumulative value of coins should not exceed N. Coin denominations are 1 Rupee, 2 Rupee and 5 Rupee.Let’s Understand the problem using the following example. Consider the value of N is 13, then the minimum number of coins required to formulate any value between 1 and 13, is 6. One 5 Rupee, three 2 Rupee and two 1 Rupee coins are required to realize any value between 1 and 13. Hence this is the answer.However, if one takes two 5 Rupee coins, one 2 rupee coin and two 1 rupee coin, then too all values between 1 and 13 are achieved. But since the cumulative value of all coins equals 14, i.e., exceeds 13, this is not the answer.

  • Input Format:
    • A single integer value.

 

  • Output Format:
    • Four space separated integer values.
      • 1st – Total number of coins.
      • 2nd – number of 5 Rupee coins.
      • 3rd – number of 2 Rupee coins.
      • 4th – number of 1 Rupee coins.

 

  • Constraints:
    • 0 < n < 1000

Refer the sample output for formatting

Sample Input

    13

Sample Output

   6 1 3 2

Explanation

  • The minimum number of coins required is 6 with in it:
    • minimum number of 5 Rupee coins = 1
    • minimum number of 2 Rupee coins = 3
    • minimum number of 1 Rupee coins = 2

Using these coins, we can form any value with in the given value and itself, like below:

Here the given value is 13

  • For 1 = one 1 Rupee coin
  • For 2 = one 2 Rupee coin
  • For 3 = one 1 Rupee coin and one 2 Rupee coins
  • For 4 = two 2 Rupee coins
  • For 5 = one 5 Rupee coin
  • For 6 = one 5 Rupee and one 1 Rupee coins
  • For 7 = one 5 Rupee and one 2 Rupee coins
  • For 8 = one 5 Rupee, one 2 Rupee and one 1 Rupee coins
  • For 9 = one 5 Rupee and two 2 Rupee coins
  • For 10 = one 5 Rupee, two 2 Rupee and one 1 Rupee coins
  • For 11 = one 5 Rupee, two 2 Rupee and two 1 Rupee coins
  • For 12 = one 5 Rupee, three 2 Rupee and one 1 Rupee coins
  • For 13 = one 5 Rupee, three 2 Rupee and two 1 Rupee coins

Python Code for Coin Distribution Problem

number = int (input ())
five = int ((number - 4) / 5) 
if ((number - 5 * five) % 2)== 0:
    one = 2
else:
    one =1
two = (number - 5 * five - one)	//2
print (one + two + five, five, two, one)
Output:
13
6 1 3 2

Coin Distribution Problem in few other Coding Languages

C

To find the solution of Coin Distribution Problem in C Programming language click on the button below:

C

C++

To find the solution of Coin Distribution Problem in C++ Programming language click on the button below:

C++

Java

To find the solution of Coin Distribution Problem in Java Programming language click on the button below:

Java

5 comments on “Python Program for Coin Distribution Problem”


  • bhargavjoshi55

    // Solution : Coin Distribution Problem in C++
    #include
    using namespace std;
    int main()
    {
    int five,two,one,total=0,number;
    cout<<"Enter the Number"<>number;
    five = (number-4)/5;
    if((number – 5*five) % 2==0)
    one = 2;
    else
    one = 1;
    two = (number – 5 * five – 1) / 2;
    total = one+two+five;
    cout<<total;
    cout<<" "<<five<<" "<<two<<" "<<one;
    return 0;
    }


  • Shaswata

    value = int(input())
    my_coin=[0,0,0]
    if value>=5:
    value -= 5
    my_coin = [0,2,1]
    my_coin[0] += (value//5)
    value = value – (5*my_coin[0])
    temp = value//2
    my_coin[1] += temp
    value = value – (2*temp)
    my_coin[2] += value
    print(my_coin)
    print(sum(my_coin))


  • Likhith R

    C Solution:
    #include
    int main(){
    int num,sum=0,fiv,one,two;
    scanf(“%d”,&num);
    fiv=(num-4)/5;
    if ( (num-5*fiv)%2==0){
    one=2;
    }
    else{
    one=1;
    }
    two=(num-5*fiv-one)/2;
    sum=one+two+fiv;
    printf(“%d %d %d %d”,sum,fiv,two,one);
    return 0;
    }


  • shital

    C++ Solution :

    #include
    using namespace std;

    int main()
    {
    int five,two,one,sum=0,number;
    cin>>number;
    five = (number-4)/5;
    if((number- 5*five)%2==0)
    {
    one = 2;
    }
    else
    {
    one = 1;
    }
    two = (number -5 * five – 1) /2;

    sum = one+two+five;
    cout<<sum;
    cout<<" "<<five<<" "<<two<<" "<<one;
    return 0;
    }