美文网首页
硬币问题

硬币问题

作者: nafoahnaw | 来源:发表于2018-06-12 17:29 被阅读0次
/**
 * 有1,5,10,50,100,500元的硬币各C1,C5,C10,C50,C100,C500枚
 * 现在要用这些硬币来支付A元,最少需要多少枚硬币?
 * 假定本题至少存在一种解决方案
 * 思路,贪心算法
 * @author haofan.whf
 * @version $Id: Coin.java, v 0.1 2018年06月12日 下午5:13 haofan.whf Exp $
 */
public class Coin {

    public void solution(int A, int C1, int C5, int C10, int C50, int C100, int C500){
        int nc500 = 0;
        if(A / 500 > 0){
            nc500 = A / 500 > C500 ? C500 : A / 500;
            System.out.println("需要500元硬币" + nc500 + "枚");
            A = A - nc500 * 500;
        }
        int nc100 = 0;
        if(A / 100 > 0){
            nc100 = A / 100 > C100 ? C100 : A / 100;
            System.out.println("需要100元硬币" + nc100 + "枚");
            A = A - nc100 * 100;
        }
        int nc50 = 0;
        if(A / 50 > 0){
            nc50 = A / 50 > C50 ? C50 : A / 50;
            System.out.println("需要50元硬币" + nc50 + "枚");
            A = A - nc50 * 50;
        }
        int nc10 = 0;
        if(A / 10 > 0){
            nc10 = A / 10 > C10 ? C10 : A / 10;
            System.out.println("需要10元硬币" + nc10 + "枚");
            A = A - nc10 * 10;
        }
        int nc5 = 0;
        if(A / 5 > 0){
            nc5 = A / 5 > C5 ? C5 : A / 5;
            System.out.println("需要5元硬币" + nc5 + "枚");
            A = A - nc5 * 5;
        }
        int nc1 = A;
        System.out.println("需要1元硬币" + nc1 + "枚");
        System.out.println("共需要硬币" + (nc1 + nc5 + nc10 + nc50 + nc100 + nc500) + "枚");
    }

}

相关文章

  • 硬币问题

  • 函数式编程思想

    换硬币问题 问题就是动态规划里面的换硬币问题。所以函数式编程的关键和动态规划问题一样:递归关系式。换硬币问题发现他...

  • 最小硬币找零问题

    最小硬币找零问题是硬币找零问题的一个变种。硬币找零问题是给出要找零的钱数,以及可以用的硬币面额d1...dn及其数...

  • 抛硬币问题

    抛硬币是概率论和随机过程中的经典实验。假设我们抛掷一枚均匀硬币,直到连续出现k次反面。求抛掷次数和出现反面次数的期...

  • 硬币组合问题

    问题描述 有 N 枚硬币,面值分别是 a1,a2,..ai,..aN,问可不可以凑成 M? 思路分析 这个题,直接...

  • 翻硬币问题

    题目 总共有n枚硬币均正面朝上,规则规定每次只能将其中p枚硬币翻面(1≤p≤n)。问最少需要多少次操作才能将所有硬...

  • 最少硬币问题

    描述:假设你有面值为1块、2块、5块的硬币,用尽可能少的硬币凑n块钱。 贪婪算法和动态规划的问题 此题的贪婪算法很...

  • 用Swift的函数式编程解决硬币问题

    用Swift的函数式编程解决硬币问题 用Swift的函数式编程解决硬币问题

  • [源码和文档分享]基于JAVA的实现的16个硬币问题

    版本1 参考9枚硬币反面问题的模型,建立16枚硬币反面问题的模型,以及其他结构的模型。 版本2 参考9枚硬币反面问...

  • DAG模型--硬币问题

    /*【问题描述】有n种硬币,面值分别为V1,V2,V3,.....Vn,每种都有无限多。给定非负整数S,可以选用多...

网友评论

      本文标题:硬币问题

      本文链接:https://www.haomeiwen.com/subject/oqsreftx.html