Задача Calculate Change - JS

tasks
loops

#1

Здравейте,

Забих с решението на задача Calculate Change от [Workshop] Conditional Statements. Разгледах решенито на колегата, който пусна тема за същата задача, но под Java, но преди да опитам по неговия подход, искам да се опитам да довърша моя. Като се замисля, доста излишен код, но все пак съм почти на финала. Ето го моето решение:

При първата проверква с входни данни 0.76 и 1 - програмата работи коректно.
При втората проверка с входни данни 1.92 и 5 - връща грешен отговор.

Вместо:
3 x 1 lev
1 x 5 stotinki
1 x 2 stotinki
1 x 1 stotinka

Връща:
1 x lev
3 x 50 stotinki
1 x 5 stotinki
1 x 2 stotinki
1 x 1 stotinka

Проблема идва от това, че при проверката за 1 лев, вдига брояча с 1, но не прави повторна преврка, съответно отива директно при проверката за 50 стотинки и от там идва и разликата в изходните данни:

if (change >= 1) {
    onehundred++;
    change -= 1;
} while (change >= 0.50) {
    fifty++;
    change -= 0.50;
}

Някакви идеи, как мога да го поправя или трябва да търся друго решение?

Поздрави,


#2

Привет,

Пусни един while за левчетата.
За 50 стотинки няма смисъл, тъй като максимално може да има само една монета от 50 ст.

Ако не искаш да ползваш цикли, май е най-удачно да прехвърлиш всичко в стотинки.


#3

Благоадря, с while, който бях изпуснал, всичко се нареди :slight_smile: