換錢問題演算法
發布時間: 2023-08-05 23:49:59
1. 演算法:找零錢,有4種硬幣1,2,5,10,將X和Y換成零錢,求所用的最少錢數 如:8,9,輸出4(1,2,2,5)
這個演算法相對較為簡單,使用大面值硬幣優先使用即可。
void getCoinList(int bigMoney)
{
int coinValues[] = {10, 5, 2, 1};
int coins[4] = {0};
int totalCoins = 0;
int surplusMoney = bigMoney;
int i = 0, j = 0;
for (i = 0; i < 4; i++)
{
coins[i] = surplusMoney / coinValues[i];
totalCoins += coins[i];
surplusMoney = bigMoney % coinValues[i];
}
printf("%d(", totalCoins);
for(i = 3; i >= 0; i--)
for(j = 0; j < coins[i]; j++)
{
if (--totalCoins > 0)
printf("%d ,", coinValues[i]);
else
printf("%d", coinValues[i]);
}
printf(")", coinValues[i]);
}
熱點內容