领扣LintCode算法问题答案-1503. 找零
目录
1503. 找零描述样例 1:样例 2:
题解鸣谢
1503. 找零
描述
某国的货币系统包含面值 1 元、4 元、16 元、64 元共 4 种硬币,以及面值 1024 元的纸币。 你现在使用 1024 元的纸币购买了一件价值为 N, 0 < N <= 1024 元的商品,请问最少会收到多少个硬币作为找零。
样例 1:
输入:
amount = 1014
输出:
4
找零 2 个 4 元硬币,和 2 个 1 元硬币。
样例 2:
输入:
amount = 1004
输出:
2
找零 1 个 16 元硬币,1 个 4 元硬币。
题解
public class Solution {
public int giveChange(int amount
) {
final int totalAmount
= 1024;
int[] types
= new int[]{64, 16, 4, 1};
int ret
= 0;
int change
= totalAmount
- amount
;
for (int t
: types
) {
if (change
>= t
) {
ret
+= change
/ t
;
change
%= t
;
if (change
== 0) {
break;
}
}
}
return ret
;
}
}
原题链接点这里
鸣谢
非常感谢你愿意花时间阅读本文章,本人水平有限,如果有什么说的不对的地方,请指正。 欢迎各位留言讨论,希望小伙伴们都能每天进步一点点。