Проблема изменения алгоритма монет - не работает - PullRequest
0 голосов
/ 18 февраля 2019

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

for (let coin of coins){
    if(change >= coin){
        if (Math.floor(change/coin) > 0){
            console.log(Math.floor(change/coin)+ " pièces de " + coin + " euro");
            let newChange = change - coin;
            change = newChange;
        }
    }
 }

Результат должен выглядеть следующим образом:

Purchase of €1.34 paid for with €5:
Change: €3.66 
Coins returned:
2 euro: 1 
1 euro: 1
50 cents: 1 
10 cents: 1 
5 cents: 1 
1 cent: 1

Мои результаты выглядят так:

Purchase of $1.34 paid for with $5
Change: 3.66
1 pièces de 2 euro
1 pièces de 1 euro
1 pièces de 0.5 euro
1 pièces de 0.1 euro
1 pièces de 0.05 euro
1 pièces de 0.01 euro

1 Ответ

0 голосов
/ 18 февраля 2019

Обратите внимание, что ваша строка: let newChange = change - coin; неверна, так как предполагает, что была дана только 1 монета, и игнорирует регистр нескольких монет.

Новое назначение для изменения var должно быть по модулю изменения после уменьшениямонета, поэтому поменяйте, если:

if (Math.floor(change/coin) > 0){
    console.log(Math.floor(change/coin)+ " pièces de " + coin + " euro");
    change  = change % coin;
}
...