检查是否可以在 JavaScript 中提供更改
问题
我们需要编写一个JavaScript函数,它接受一个数字数组arr作为第一个也是唯一的参数。
让我们考虑以下情况:
店主出售一种商品,其成本正好为5卢比。一些顾客排队等候,每人将购买该商品的一单位。顾客可以向店主提供5卢比、10卢比或20卢比的纸条。考虑到店主一开始没钱,数组代表排队的顾客给的纸条。
我们的功能应该确定店主是否可以为所有客户提供准确的更改。
例如,如果函数的输入是
输入
const arr = [5, 5, 10, 10, 20];
输出
const output = false;
输出说明
因为两个5音符将用于提供两个10音符的变化,之后无法生成20音符的变化。
以下是代码:
示例
const arr = [5, 5, 10, 10, 20];
const provideChanges = (arr = []) => {
let fives = 0
let tens = 0
for(let i = 0; i < arr.length; i++) {
switch(arr[i]) {
case 5:
fives += 1
break
case 10:
if(fives <= 0) {
return false
}
fives -= 1
tens += 1
break
default:
if(tens >= 1 && fives >= 1) {
tens -= 1
fives -= 1
} else if(fives >= 3) {
fives -= 3
} else {
return false
}
break
}
}
return true
};
console.log(provideChanges(arr));输出结果false
热门推荐
6 保研的祝福语简短
10 年轻20岁祝福语简短
11 朋友结婚祝福语信息简短
12 女孩婚礼贺卡祝福语简短
13 30段点歌简短祝福语
14 虎年春节祝福语图文简短
15 写给后妈祝福语大全简短
16 简短回复生日祝福语
17 校长送毕业祝福语简短
18 毕业立体贺卡祝福语简短