美文网首页
Exact Change

Exact Change

作者: 我想静静静静静 | 来源:发表于2018-06-03 16:56 被阅读0次

function checkCashRegister(price, cash, cid) {

  var change = cash - price;  //该找补的钱

  var changeLeft = change;  //每轮找补之后还该找补的钱

  var subCid = 0;  //收银机里所有零钱的和

  var obj = {    //面值单位

    "PENNY": 0.01,

    "NICKEL": 0.05,

    "DIME": 0.1,

    "QUARTER": 0.25,

    "ONE": 1,

    "FIVE": 5,

    "TEN": 10,

    "TWENTY": 20,

    "ONE HUNDRED": 100

  };

  var result = []; //最后返回的结果

    function sum(cid){    // 求和函数

        var total = 0;

        for(var i = 0;i<cid.length;i++){

          total += cid[i][1];

        }

        return total.toFixed(2);

      }

subCid = sum(cid);

  if(subCid < change){

    return "Insufficient Funds";

  }else if(change - subCid ===0){

    return "Closed";

  }

    for(var j=cid.length-1;j>=0;j--){

      var coinName = cid[j][0];  //零钱面额名称

      var coinTotal = cid[j][1];  //该面额零钱之和

      var coinValue = obj[coinName]; //零钱面额单位

      var coinAmount = coinTotal/coinValue;  //该面额零钱张数

      var toReturn = 0;  //找回零钱张数

      while(changeLeft>=coinValue && coinAmount>0){

        changeLeft-=coinValue;

        changeLeft = changeLeft.toFixed(2);  // 处理小数相减出现一长串的小数位数

        coinAmount --;

        toReturn ++;

      }

      if(toReturn > 0){

        result.push([coinName,toReturn*coinValue]);

      }

    }

if(changeLeft!=0){

  return "Insufficient Funds";

}

  return result;

}

// Example cash-in-drawer array:

// [["PENNY", 1.01],

// ["NICKEL", 2.05],

// ["DIME", 3, 4.25],

// ["ONE", 90.00],.10],

// ["QUARTER"

// ["FIVE", 55.00],

// ["TEN", 20.00],

// ["TWENTY", 60.00],

// ["ONE HUNDRED", 100.00]]

checkCashRegister(3.26, 100.00, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.10], ["QUARTER", 4.25], ["ONE", 90.00], ["FIVE", 55.00], ["TEN", 20.00], ["TWENTY", 60.00], ["ONE HUNDRED", 100.00]]);

相关文章

  • Exact Change

    function checkCashRegister(price, cash, cid) { var chang...

  • Exact Change

    设计一个收银程序 checkCashRegister() ,其把购买价格(price)作为第一个参数 , 付款金额...

  • Exact Change

    题目要求:设计一个收银程序 checkCashRegister() ,其把购买价格(price)作为第一个参数 ,...

  • Exact Change

    设计一个收银程序 checkCashRegister() ,其把购买价格(price)作为第一个参数 , 付款金额...

  • Exact Change

    要求 设计一个收银程序 checkCashRegister() ,其把购买价格(price)作为第一个参数 , 付...

  • Exact Change - freecodecamp

    Exact Change - freecodecamp https://www.freecodecamp.org/...

  • FCC高级编程篇之Exact Change

    Exact Change Design a cash register drawer function check...

  • 【21】预约变动

    delay 使延期 exact 确切的 fixed 确定的 postpone 延迟 change 更改 settl...

  • FCC 高级算法 Exact Change

    目标 设计一个收银程序 checkCashRegister() ,其把购买价格(price)作为第一个参数 , 付...

  • FreeCodeCamp筆記之:Exact Change

    题目 设计一个收银程序checkCashRegister(),其把购买价格(price)作为第一个参数 , 付款金...

网友评论

      本文标题:Exact Change

      本文链接:https://www.haomeiwen.com/subject/lfgjsftx.html