Привет, най накрая стигнах до работещо решение, но един тест кейс, все пак гърми, дали може някой да помогне защо се случва така.
Ето го решението:
let price = Math.round(+gets()*100);
let sumPayed = Math.round(+gets()*100);
let change = sumPayed - price;
let temp = 0;
if(change >= 100) {
temp = Math.round(change / 100);
print(`${temp} x 1 lev`);
change =Math.round(change - (temp * 100));
}
if (change >= 50) {
(Math.round(change / 50) !== 0)
temp = Math.floor(change / 50);
print(`${temp} x 50 stotinki`);
change =Math.round(change - (temp * 50));
}
if (change >= 20) {
temp = Math.floor(change / 20);
print(`${temp} x 20 stotinki`);
change =Math.round(change - (temp * 20));
}
if (change >= 10) {
temp = Math.floor(change / 10);
print(`${temp} x 10 stotinki`);
change =Math.round(change - (temp * 10));
}
if (change >= 5) {
temp = Math.floor(change / 5);
print(`${temp} x 5 stotinki`);
change =Math.round(change - (temp * 5));
}
if (change >= 2) {
temp = Math.floor(change / 2);
print(`${temp} x 2 stotinki`);
change =Math.round(change - (temp * 2));
}
if (change >= 1) {
temp = Math.floor(change / 1);
print(`${temp} x 1 stotinki`);
change =Math.round(change - (temp * 1));
}
Прегледай си последния print , има грешка, погледни как е в условието
В първия if използваш Math.round и ако рестото е над x.50 ти закръглява левовете нагоре. Например ако change е 2.70 ще върне 3 х 1 lev. Math.floor вероятно ще оправи нещата.
поправих го на 1 x stotinka, не е това проблема.
math.floor - все още не оправя нещата, все така само 80 точки ми дава
Обръщам внимание и на тази част в скобите след отворената curly скоба:
if (change >= 50) {
(Math.round(change / 50) !== 0)
Привет хора, ето го финалното решение, със всички корекции, които предложихте, за съжаление пак минава само частично, т.е. ми дава 80 от 100 точки.
let price = Math.round(+gets()*100);
let sumPayed = Math.round(+gets()*100);
let change = sumPayed - price;
let temp = 0;
if(change >= 100) {
temp = Math.floor(change / 100);
print(`${temp} x 1 lev`);
change =Math.round(change - (temp * 100));
}
if (change >= 50) {
(Math.round(change / 50) !== 0)
temp = Math.floor(change / 50);
print(`${temp} x 50 stotinki`);
change =Math.round(change - (temp * 50));
}
if (change >= 20) {
temp = Math.floor(change / 20);
print(`${temp} x 20 stotinki`);
change =Math.round(change - (temp * 20));
}
if (change >= 10) {
temp = Math.floor(change / 10);
print(`${temp} x 10 stotinki`);
change =Math.round(change - (temp * 10));
}
if (change >= 5) {
temp = Math.floor(change / 5);
print(`${temp} x 5 stotinki`);
change =Math.round(change - (temp * 5));
}
if (change >= 2) {
temp = Math.floor(change / 2);
print(`${temp} x 2 stotinki`);
change =Math.round(change - (temp * 2));
}
if (change >= 1) {
temp = Math.floor(change / 1);
print(`${temp} x 1 stotinki`);
change =Math.round(change - (temp * 1));
}
chavo
March 7, 2023, 3:59am
8
Привет,
Както е споменал @miroslav.ivnv имаш грешка в последния принт.
Ако го поправиш, задачата ще мине.
Поздрави,
Чаво
пробвах го и със 1 stotinka, както и с 1 stotinki, и двете ми докарват един и същ резултат