Javascript 将给定金额的钱换成钞票
将给定的金额更改为最小数量的票据 投入: 金额:正整数; 票据:不同正整数的排序列表(例如[1,5,10]) 假设: 金额不超过100。 最多4个票据价值 如果金额无法更改,则必须返回0 示例: 金额:17,账单:[1,5,10],回答:4->10+5+1+1 金额:17,账单:[2,4],答案:0 这是我目前掌握的代码Javascript 将给定金额的钱换成钞票,javascript,function,coin-change,Javascript,Function,Coin Change,将给定的金额更改为最小数量的票据 投入: 金额:正整数; 票据:不同正整数的排序列表(例如[1,5,10]) 假设: 金额不超过100。 最多4个票据价值 如果金额无法更改,则必须返回0 示例: 金额:17,账单:[1,5,10],回答:4->10+5+1+1 金额:17,账单:[2,4],答案:0 这是我目前掌握的代码 函数排序(数组){ 对于(var i=array.length-1;i>=0;i--){ 对于(var j=0;j数组[j]){ var z=数组[j]; 数组[j]=数组[
函数排序(数组){
对于(var i=array.length-1;i>=0;i--){
对于(var j=0;j数组[j]){
var z=数组[j];
数组[j]=数组[j+1];
数组[j+1]=z;
}
}
}
返回数组;
}
功能变更(金额、票据){
分拣(票据);
var结果=[];
而(金额>0){
对于(变量i=0;i=票据[i]){
金额-=票据[i];
结果:推送(法案[i]);
我--;
}
}
}
返回result.length;
}
log(更改(17[1,5,10]);//期望值:4
console.log(更改(17[2,4]);//期望值:0
console.log(更改(18[2,4]);//预期:5
//console.log(更改(17[3,5]);//期望:5如果修复了您的更改功能并添加了注释来解释我的更改,请告诉我您是否有任何疑问
function change (amount, bills) {
//Asign sorted array of bills to possibleBills
var possibleBills = sort(bills);
var result = [];
//Asign amount to currentAmount
var currentAmount = amount;
//Sort through possibleBills
for (var i = 0; i < possibleBills.length; i++) {
//Perform action inside while loop if the current bill value can be substracted from currentAmount
while (currentAmount - possibleBills[i] >= 0) {
currentAmount -= possibleBills[i];
result.push(possibleBills[i]);
//End loop and return the length of result if currentAmount reaches 0
if (currentAmount === 0) {
return result.length;
}
}
}
//Return 0 if the amount couldn't be changed with the given bills
if (currentAmount > 0) {
return 0;
}
return result.length;
};
功能更改(金额、票据){
//将已排序的票据数组指定为可能的票据
var possibleBills=排序(票据);
var结果=[];
//从指定金额到当前金额
var currentAmount=金额;
//对可能的垃圾进行分类
对于(变量i=0;i=0){
当前金额-=可能的利息[i];
结果:推送(可能的边界[i]);
//结束循环,如果currentAmount达到0,则返回结果的长度
如果(currentAmount==0){
返回result.length;
}
}
}
//如果无法使用给定的票据更改金额,则返回0
如果(当前金额>0){
返回0;
}
返回result.length;
};
它比我的更好,但仍然存在上一个的问题。对于17,[3,5],它返回0,就好像它不能这样做一样,但是通过在代码中获取4个3和15个元素,它是可能的,应该解释代码为什么要这样做。如果你真的读了我写的东西,而不只是愤怒的评论,那么当代码更好地解释自己的时候,看到人们到处放评论来解释代码正在做的事情,真的很烦人。你会注意到我是一个新手。拉比很好地把这件事考虑进去,并加了一些评论,以便我理解他在做什么。它帮助了我,我不知道你为什么对它生气。@Mendal我很高兴我能帮上忙。对不起,我不知道你怎么才能修好最后一个