10简单推导:硬币方案

【题目】 
有50枚硬币,可能包括4种类型:1元,5角,1角,5分。 
已知总价值为20元。求各种硬币的数量。 
比如:2,34,6,8 就是一种答案。 
而 2,33,15,0 是另一个可能的答案,显然答案不唯一。 
你的任务是确定类似这样的不同的方案一共有多少个(包括已经给出的2个)? 
直接提交该数字,不要提交多余的内容。

【分析】 
将所有的单位都换算成分,这样就避免了出现小数的问题。

import java.util.*;
public class Lanq {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = 5, b = 10, c = 50, d = 100;
        int sum = 2000;
        int cnt = 0;
        for (int i = 0; i <= 400; i++)
            for (int j = 0; j <= 200; j++)
                for (int k = 0; k <= 40; k++)
                    for (int m = 0; m <= 20; m++) {
                        if (a * i + b * j + k * c + m * d == sum&&i+j+k+m==50)
                        {

                            cnt++;
                            break;
                        }
                    }
                    System.out.println(cnt);

    }

  

原文地址:https://www.cnblogs.com/passion-sky/p/8544330.html