Coins change
import java.util.*;
public class CoinsChange {
public static void Print(int dp[][]) {
for (int i = 0; i < dp.length; i++) {
for (int j = 0; j < dp[0].length; j++) {
System.out.print(dp[i][j] + " ");
}
System.out.println();
}
}
public static int coinsChange(int coins[], int sum) {
int n = coins.length;
int dp[][] = new int[n + 1][sum + 1];
for (int i = 0; i < n + 1; i++) {
dp[i][0] = 1;
}
for (int j = 1; j < sum + 1; j++) {
dp[0][j] = 0;
}
for (int i = 1; i < n + 1; i++) {
for (int j = 1; j < sum + 1; j++) {
if (coins[i - 1] <= j) {
dp[i][j] = dp[i][j - coins[i - 1]] + dp[i - 1][j];
} else {
dp[i][j] = dp[i - 1][j];
}
}
}
Print(dp);
return dp[n][sum];
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter n:");
int n = sc.nextInt();
int coins[] = new int[n];
System.out.println("Enter coins:");
for (int i = 0; i < n; i++) {
coins[i] = sc.nextInt();
}
System.out.println("Enter target sum:");
int sum = sc.nextInt();
System.out.println("The total Number of ways to gain the required sum: " + coinsChange(coins, sum));
}
}
Comments
Post a Comment