硬币问题 (贪心)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了硬币问题 (贪心)相关的知识,希望对你有一定的参考价值。
有1元、5元、10元、50元、100元、500元的硬币各C1 C5 C10 C50 C100 C500 。现在要用这些硬币来支付A元,最少需要多少枚硬币?
优化使用面值大的硬币。
贪心法就是遵循某种规则,不断贪心地选取当前最优策略的算法设计方法.
搜索算法和动态规划算法是在多种策略中选取最优解,而贪心算法则不同,它遵循某种规则,不断地选取当前最优解。
1 const int V[6]={1,5,10,50,100,500}; 2 3 //输入个数 4 int C[6]; 5 int A; 6 7 void solve(){ 8 int ans=0; 9 10 for(int i=5; i>=0; i--){ 11 int t=min(A/V[i],C[i]); //使用硬币i的枚数 12 A-=t*V[i]; 13 ans+=t; 14 } 15 16 printf("%d\n",ans); 17 }
来自:<<挑战程序设计竞赛>>
以上是关于硬币问题 (贪心)的主要内容,如果未能解决你的问题,请参考以下文章