int moneySort[] = {25,10,5,1};
int g_num25;
int g_num10;
int g_num5;
int g_num1;
int g_moneyLeft = 0;
int g_currMoney = 0;
void searchLoop(int totalCheck, int money, int &num)
{
while (1)//找零需要的最大数量
{
if (g_currMoney < totalCheck)
{
g_currMoney += money;
num++;
}
else if (g_currMoney==totalCheck) return;
else {
g_currMoney -= money;
num--;
g_moneyLeft = totalCheck - g_currMoney;
break;
}
}
return;
}
/* 贪婪算法实现最少硬币找零问题 */
void greedMethod(int totalCheck)
{
searchLoop(totalCheck,moneySort[0],g_num25);//25美分
searchLoop(totalCheck,moneySort[1],g_num10);//10
searchLoop(totalCheck,moneySort[2],g_num5);//5
searchLoop(totalCheck,moneySort[3],g_num1);// 1
}
179

被折叠的 条评论
为什么被折叠?



