Подскажите пожалуйста алгоритм на Javascript. Можно без кода [расчет возможности сдачи для людей с банкнотами 100, 50, 25 и ценой билета 25]

Прикольная задача. Я не смог “влет” придумать алгоритм решения. Но, но. Мы живем в удивительное время когда подобные вещи можно спрашивать у программ. Я спросил ИИ про алгоритм решения, и кажется, он должен работать. Вот ответ ИИ:

Для решения данной задачи можно использовать следующий алгоритм:

  1. Создать переменные cash25, cash50 и cash100, которые будут хранить количество имеющихся у Васи банкнот номиналом 25, 50 и 100 долларов соответственно. Изначально все эти переменные равны 0.
  2. Пройти по каждому человеку в очереди в порядке их следования.
  3. Для каждого человека проверить, какую банкноту он предъявляет в качестве оплаты билета. Для этого можно использовать условные операторы.
  4. Если предъявляемая банкнота имеет номинал 25, то добавить ее к переменной cash25.
  5. Если предъявляемая банкнота имеет номинал 50, то увеличить переменную cash50 и проверить, есть ли доступная сдача. Для этого можно вычесть из переменной cash25 одну банкноту номиналом 25.
  6. Если предъявляемая банкнота имеет номинал 100, то увеличить переменную cash100 и проверить доступность сдачи. Для этого можно сначала вычесть из переменной cash50 одну банкноту номиналом 50, а затем вычесть из переменной cash25 одну банкноту номиналом 25. Если сдачу можно выдать, то уменьшить соответствующие переменные на 1.
  7. Если в какой-то момент невозможно выдать сдачу, то ответить “NO” и завершить алгоритм.
  8. Если все люди в очереди успешно обслужены и сдача выдается каждому, то ответить “YES” и завершить алгоритм.
    Таким образом, данный алгоритм будет последовательно обрабатывать каждого человека в очереди и проверять возможность выдачи сдачи. Если в какой-то момент это невозможно, то ответ будет “NO”, иначе ответ будет “YES”.