diff --git a/Algorithms/Dynamic Programming/coin_change.cpp b/Algorithms/Dynamic Programming/coin_change.cpp new file mode 100755 index 0000000..ff99122 --- /dev/null +++ b/Algorithms/Dynamic Programming/coin_change.cpp @@ -0,0 +1,55 @@ +#include +#include +using namespace std; + + +long long int count( long long int S[], long long int m, long long int n ) +{ + int table[m+1][n+1]; + memset(table, 0, sizeof(table)); + + for(long long int i=0;i<=m;i++) + { + table[i][0] = 1; + } + for(long long int i=1;i<=m;i++) + { + + for(long long int j=1;j<=n;j++) + { + if(S[i-1]>j) + { + table[i][j]=table[i-1][j]; + + } + + else + { + table[i][j]=table[i-1][j]+table[i][j-S[i-1]]; + } + + } + } + + // for(int i=0;i<=m;i++){ + // for(int j=0;j<=n;j++){ + // cout<>t; + while(t--){ + cin>>m; + long long int S[m]; + for(i=0;i>S[i]; + cin>>n; + cout< + +using namespace std; + +int main(){ + long n,i; + cin>>n; + long long int dp[100001]; + dp[0]=1; + for(i=1;i<100001;i++){ + dp[i] = dp[i-1]*i; + } + cout< +#define NIL -1 +using namespace std; + +int memo[100001]; +int dp[100001]; + +void _inintialize(){ + long i; + for(i=0;i<100001;i++) + memo[i] = NIL; +} + +int fibo_top_down(int n){ + if(memo[n]==NIL){ + if(n<=1){ + memo[n] = n; + } + else + memo[n] = fibo_top_down(n-1) + fibo_top_down(n-2); + } + return memo[n]; +} + +void fibo_bottom_up(){ + dp[0]=0; + dp[1]=1; + long i; + for(i=2;i<100001;i++) + dp[i]=dp[i-1]+dp[i-2]; +} + +int main(){ + long long int n; + cin>>n; + _inintialize(); + fibo_bottom_up(); + cout<