硬币问题
有1元,5元,10元,50元,100元,500元,硬币各...枚,用这些硬币来支付A元,最少要多少枚硬币?
贪心从能够使用的最大面值开始,尽量使用可以用的最大面值
#include <iostream>
using namespace std;
int main()
{
int summ;//记录价格的总数
int num1[6];//记录硬币的数量
int num2[]={1,5,10,50,100,500};//记录硬币对应的价值
int count=0;//总数量
int count2=0;//临时数量
int status=0;//状态
for(int i=0;i<6;i++)
cin>>num1[i];
cin>>summ;
while(summ)
{count2=(summ-summ%num2[5-status])/num2[5-status];
count2=count2>num1[5-status]?num1[5-status]:count2;
summ-=count2*num2[5-status];
count+=count2;
status++;
if(status>6)
{
cout<<"无法找开!"<<endl;
return 0;
}
}
cout<<count<<endl;
return 0;
}