三种硬币,用数学排列组合的思想,就是从3种不同的物品中选择然后再组合,当然每种物品选择的数量是变化的,所以就设定1分的数量为i,2分的数量为j,5分的数量为k.接着再想想,因为最终的结果是2角,也就是20分,所以1分的数量不会超过20,2分的数量不会超过10,5分的数量不会超过4
public class Money {public static void main(String[] args) {int count = 0;for(int i=0; i<21; i++) {for(int j=0; j<11; j++) {for(int k=0; k<5; k++) {if((i+2*j+5*k)==20) {System.out.println(i+"个一分"+j+"个二分"+k+"个五分");count++;}}}}System.out.println(count);}}
最终结果:
0个一分0个二分4个五分
0个一分5个二分2个五分
0个一分10个二分0个五分
1个一分2个二分3个五分
1个一分7个二分1个五分
2个一分4个二分2个五分
2个一分9个二分0个五分
3个一分1个二分3个五分
3个一分6个二分1个五分
4个一分3个二分2个五分
4个一分8个二分0个五分
5个一分0个二分3个五分
5个一分5个二分1个五分
6个一分2个二分2个五分
6个一分7个二分0个五分
7个一分4个二分1个五分
8个一分1个二分2个五分
8个一分6个二分0个五分
9个一分3个二分1个五分
10个一分0个二分2个五分
10个一分5个二分0个五分
11个一分2个二分1个五分
12个一分4个二分0个五分
13个一分1个二分1个五分
14个一分3个二分0个五分
15个一分0个二分1个五分
16个一分2个二分0个五分
18个一分1个二分0个五分
20个一分0个二分0个五分
29