英国的货币单位包括英镑£和便士p,在流通中的硬币一共有八种:
1p, 2p, 5p, 10p, 20p, 50p, £1 (100p), £2 (200p)
以下是组成£2的其中一种可行方式:
1×£1 + 1×50p + 2×20p + 1×5p + 1×2p + 3×1p
不限定使用的硬币数目,组成£2有多少种不同的方式?
分析:通过递归计算,只有相减等于0的时候sum才会加1,否则通过循环递归计算sum的值。
output: 73682
public class CoinSum_11 {
public static int coin(int money,int index) {
int[] coin = {1, 2, 5, 10, 20, 50, 100, 200};
int sum = 0;
for(int i= index;i<coin.length;i++) {
if(money - coin[i] ==0) {
sum++;
break;
}
if(money - coin[i] > 0) {
sum = sum + coin(money - coin[i],i);
}
}
return sum;
}
public static void main(String[] args) {
System.out.println(coin(200,0));
}
}