算法题:现有i张十元,k张五元,j张两元,要支付n元(i,j,k,n 为整数)。写一个函数:要求手上拥有的纸币是否足够并能刚好拼凑齐n元,而不需要找零。
直接上代码:
/*
** i: 10元的张数
** j: 5元的张数
** k: 2元的张数
** n: 支付金额
*/
function Changes(i, j, k, n) {
const total = i * 10 + j * 5 + k * 2 //兜里的钱
if (total > n) { //兜里够钱
let remaining = n //剩余的钱
let num10 = 0; //需要十元的张数
let num5 = 0; //需要五元的张数
let num2 = 0; //需要两元的张数
//计算需要十元的数量
if (remaining >= 10 && i > 0) {
min10 = Math.floor(remaining / 10) //全用十元最小支付张数
num10 = Math.min(i, min10) //跟兜里张数对比取最小值
remaining = remaining - num10 * 10 //剩余应支付金额
}
//计算需要五元的数量
if (remaining >= 5 && j > 0) {
min5 = Math.floor(remaining / 5) //剩余应付用五元最小支付张数
num5 = Math.m


2301

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



