现有i张十元纸币,k张五元纸币,j张两元纸币,购物后要支付n元(i,j,k,n 为整数)。要求编写一个函数Changes(i,j,k, n)

算法题:现有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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值