Advertisement
Guest User

Untitled

a guest
Aug 2nd, 2015
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.29 KB | None | 0 0
  1. function drawer(price, cash, cid) {
  2. var change = [];
  3. var types = ['PENNY', 'NICKEL', 'DIME', 'QUARTER', 'ONE', 'FIVE', 'TEN', 'TWENTY', 'ONE HUNDRED'];
  4. var values = {
  5. PENNY: 1,
  6. NICKEL: 5,
  7. DIME: 10,
  8. QUARTER: 25,
  9. ONE: 100,
  10. FIVE: 500,
  11. TEN: 1000,
  12. TWENTY: 2000,
  13. 'ONE HUNDRED': 10000
  14. };
  15. var cashback = Math.round((cash - price) * 100);
  16. var typeIdx = types.length - 1;
  17. var changeVal = 0;
  18. var cashLeft = 0;
  19. while (typeIdx !== -1 && changeVal !== cashback) {
  20. var changeLeft = cashback - changeVal;
  21. var value = values[types[typeIdx]];
  22. var availChange = Math.round(cid[typeIdx][1] * 100);
  23. if (value > changeLeft || availChange === 0) {
  24. typeIdx--;
  25. cashLeft += availChange;
  26. } else {
  27. var locChange = Math.min(availChange, changeLeft - changeLeft % value);
  28. console.log(locChange);
  29. changeVal += locChange;
  30. cid[typeIdx][1] -= locChange / 100;
  31. change.push([types[typeIdx], locChange / 100]);
  32. }
  33. }
  34. if (changeVal !== cashback) {
  35. return 'Insufficient Funds';
  36. }
  37. if (cashLeft === 0) {
  38. return 'Closed';
  39. }
  40. return change;
  41. }
  42.  
  43. drawer(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]]);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement