/* 问题描述:
* 钱币找零问题:假设1元、2元、5元、10元、20元、50元、100元的纸币分别有c0, c1, c2, c3, c4, c5, c6张。
* 现在要用这些钱来支付K元,至少要用多少张纸币? */
#include <iostream>
#include <stdio.h>
#include <algorithm>
using namespace std;
const int N = 7;
int moneyCount[N] = {3,0,2,1,0,3,5};
int moneyValue[N] = {1,2,5,10,20,50,100};
int valueCount(int money)
{
int sum = 0;
for (int i=N-1;i>=0;i--)
{
int c = min(money/moneyValue[i],moneyCount[i]);
if(money/moneyValue[i] == 0)
{
sum = sum+1;
return sum;
}
money -= moneyValue[i]*c;
sum += c;
}
if(money>0)
return -1;
return sum;
}
int main()
{
int money;
cin>>money;
int c = valueCount(money);
if(c == -1)
cout<<"没有足够的钱!"<<endl;
else
cout<<"至少需要"<<c<<"张钱币"<<endl;
}
贪心算法_钱币找零
最新推荐文章于 2023-11-25 19:48:36 发布