public class CoinMain {
public static void main(String[] args) {
int n = 102; // total money in cents
try {
for (int i = 0; i < n; i++) {
System.out.println("scaling " + i + " : " + unitScalingCalculator(i, 25));
}
}
catch(Throwable e) {
e.printStackTrace();
}
}
public static int unitScalingCalculator(int n, int token) {
int next_token = 0;
switch (token) {
case 25:
next_token = 10;
break;
case 10:
next_token = 5;
break;
case 5:
next_token = 1;
break;
case 1:
return 1;
}
int totalWays = 0;
for (int i = 0; i * token <= n; i++) {
totalWays += unitScalingCalculator(n - i * token, next_token);
}
return totalWays;
}
}