Created
July 18, 2017 13:19
-
-
Save porimol/87e00a3485fff38a5b20a73cca142f28 to your computer and use it in GitHub Desktop.
Coin changing dynamic program in c
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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