PWL*_*PWL 1 javascript algorithm
所以我一直在尝试用Javascript/jQuery创建一个程序,将一定数量的钱分成最小的美元账单.到目前为止,该程序仅适用于一个账单,我不太确定如何实现其余的,并且需要在这里推进正确的方向.
var bills = [5, 10, 20, 50, 100];
while(money > 0){ // Keep deviding
for(var i=0; i < bills.length; i++){
if(money < bills[i])
return "You need a $" + bills[i] + " bill to pay for your item.";
}
}
Run Code Online (Sandbox Code Playgroud)
如果我运行money = 89;它将返回100,因为这是最接近的可以支付89美元的账单,但我希望它返回50 + 20 + 20所以它将适用money = *anything*.
编辑:评论后我现在到目前为止:
while(money > 0){ // Keep deviding
for(var i=bills.length-1; i >= 0; i--){
if(money > bills[i] || i == 0){
stringToReturn += " + $" + bills[i];
money -= bills[i];
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
var bills = [5, 10, 20, 50, 100];
var money = mod(89);
function mod(num){
if (num % 5 === 0){
return num;
}else{
return num + 5 - num % 5
}
}
function foo(num){
var index = bills.length - 1;
var splits = [];
while (money >= bills[0]){
if (money >= bills[index]){
money -= bills[index];
splits.push(bills[index]);
}else{
index--;
}
}
return splits;
}
console.log(foo(money));
Run Code Online (Sandbox Code Playgroud)
编辑过的jsfiddle