检查是否可以在 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

以上是 检查是否可以在 JavaScript 中提供更改 的全部内容, 来源链接: utcz.com/z/317380.html

回到顶部