給定一筆應發工資金額,需計算使用 100、50、20、10、5、1 元面額鈔票,使總張數最少的組合方案。這是典型的「貪心演算法」應用場景。
從最大面額開始嘗試,盡可能多用大面額,再依序處理較小面額,即可保證總張數最少(前提是鈔票面額系統具備標準貨幣特性)。
switch (yuan) {
case 1: num = 1; break;
case 2: num = 2; break;
case 3: num = 3; break;
case 4: num = 4; break;
case 5: num = 1; break; // 直接用 1 張 5 元
case 6: num = 2; break; // 1 張 5 元 + 1 張 1 元
case 7: num = 3; break;
case 8: num = 4; break;
case 9: num = 5; break; // 1 張 5 元 + 4 張 1 元
}
完整解法需依序處理百位、十位、個位,或使用迴圈遍歷面額陣列 {100, 50, 20, 10, 5, 1} 進行整除與取餘運算。