Design and Analysis of Algorithms - 9

Implement Program for “Making Change” using Greedy

design technique.

 

Code:


#include<stdio.h>

#include<stdlib.h>

 

void change(int *denom,int nDenom,int change);

void main()

{

    int coin[10];

    int i,n,amount=0;

    printf("Enter amount:");

    scanf("%d",&amount);

    printf("Enter number of coins for exchange:");

    scanf("%d",&n);

    printf("\nEnter value of coins:\n");

    for(i=0;i<n;i++)

        {

            scanf("%d",&coin[i]);

        }

         change(coin,n,amount);

}

 

void change(int *denom,int nDenom,int change)

{

    int a,i=0,j,k,sum,ncoin=0,*count;

    count=(int*)malloc(nDenom*(sizeof(int)));

    sum=change;

    for(i=0;i<nDenom;i++)

        {

            count[i]=0;

        }

    for (k = 0; k <nDenom; ++k)

    {

        for (j = k + 1; j <nDenom; ++j)

        {

            if (denom[k] <denom[j])

            {

                a = denom[k];

                denom[k] = denom[j];

                denom[j] = a;

            }

        }

    }

    i=0;

    while(i<nDenom)

        {

            if(denom[i]<=sum)

                {

                    sum=sum-denom[i];

                    ncoin++;

                    count[i]++;

                }

            else

                {

                    i++;

                }

        }

    if(sum!=0)

    printf(" change not possible");

    else

        {

            printf("\nNumber coins needed are: %d\n",ncoin);

    for(i=0;i<nDenom;i++)

        {

            if(count[i]!=0)

            printf("Coin of %d is used %d times\n",denom[i],count[i]);

        }

   }

}


Output:

 


 

 

 










Conclusion:

In this Practical, I understand to Implement program for “Making Change” using Greedy design technique.

 

Comments

Popular posts from this blog

Computer Architecture and Organization - 4

Design and Analysis of Algorithms - 2

Design and Analysis of Algorithms - 6

Design and Analysis of Algorithms - 1

Artificial Intelligence - 7