#include<stdio.h>
#include<stdlib.h>
//贪心算法之找零钱问题
void GiveChanges(int amount)//amount要找零的金额
{
int money[] = { 50,20,10,5,1 };//因为要找的钱张数要尽量少,所以金额要从大到小
int arrNum = sizeof(money) / sizeof(money[0]);//求数组大小
printf("要找零%d元则需:\n",amount);
for (int i = 0; i < arrNum; i++)
{
int current = money[i];
//pieces为要找的某面额纸币的张数
int pieces = amount / current;
if (pieces > 0)
{
printf("%d张%d块\n",pieces,current);
amount %= current;//amount再对current进行取余
}
}
}
int main(int argc, char* argv[])
{
GiveChanges(10);
GiveChanges(99);
return 0;
}
贪心算法之找零问题
最新推荐文章于 2024-07-25 21:08:08 发布