贪心算法设计 之最少硬币数目

来源:互联网 发布:淘宝信欣美妆靠谱吗 编辑:程序博客网 时间:2024/05/21 07:15
//题目描述:现在有1元,5元,10元,50元,100元,500元的硬币各c1,c2...c6枚//现在需要去付钱数为A元,问,至少需要多少枚硬币//算法:只需要不断选择面值大的硬币就可以了,因为问题保证有解#include<iostream>#include<string.h>#include<algorithm>using namespace std;int A, v[6] = { 1, 5, 10, 50, 100, 500 }, c[6];int main(){while (cin >> A){memset(c, 0, sizeof(c));//inputfor (int i = 0; i < 6; i++){cin >> c[i];}int ans = 0;//from big to smallfor (int i = 5; i >= 0; i--){int t = min(A / v[i], c[i]);A -= t*v[i];ans += t;}cout << ans << endl;}return 0;}

0 0
原创粉丝点击