Skip to content

Instantly share code, notes, and snippets.

@porimol
Created July 18, 2017 13:19
Show Gist options
  • Save porimol/87e00a3485fff38a5b20a73cca142f28 to your computer and use it in GitHub Desktop.
Save porimol/87e00a3485fff38a5b20a73cca142f28 to your computer and use it in GitHub Desktop.
Coin changing dynamic program in c
#include<stdio.h>
// Returns the count of ways we can sum S[0...m-1] coins to get sum n
int count( int S[], int m, int n )
{
// If n is 0 then there is 1 solution (do not include any coin)
if (n == 0)
return 1;
// If n is less than 0 then no solution exists
if (n < 0)
return 0;
// If there are no coins and n is greater than 0, then no solution exist
if (m <=0 && n >= 1)
return 0;
// count is sum of solutions (i) including S[m-1] (ii) excluding S[m-1]
return count( S, m - 1, n ) + count( S, m, n-S[m-1] );
}
// Driver program to test above function
int main()
{
int i, j, n, m[100];
printf("Please enter the size of array input: ");
scanf("%d", &i);
printf("Please enter the value of changing: ");
scanf("%d", &n);
for(j=0; j<i; j++){
scanf("%d", &m[j]);
}
printf("%d ", count(m, i, n));
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment