Професионална програма
Loading...
fqlc0n3 avatar fqlc0n3 1 Точки

Output-а в judge системата е различен от конзолния в браузъра

Здравейте! :)

Имам следния въпрос: 

Защо когато напиша дадена задача и я тествам предварително тя работи напълно, но в judge системата ми дава обсолютно неочакван output, заради което я брои за невярна или не напълно вярна?

function HollyDay(vacPr, puzz, dolls, bears, miners, trucks) {
    let newTotalSum = 0;
    let totalSum = puzz * 2.6 + dolls * 3 + bears * 4.1 + miners * 8.2 + trucks * 2;
    let count = puzz + dolls + bears + miners + trucks;
    
    if(count >= 50) newTotalSum = totalSum * 0.75 * 0.9;
    else newTotalSum = totalSum * 0.9;

    if(newTotalSum >= vacPr) {
        let left = newTotalSum - vacPr;
        console.log(`Yes! ${left.toFixed(2)} lv left.`);
    }
    else {
        let notEnough = vacPr - newTotalSum;
        console.log(`Not enough money! ${notEnough.toFixed(2)} lv needed.`);
    }
}

HollyDay(320, 8, 2, 5, 5, 1); // output (Opera console) - Not enough money! 238.73 lv needed. // а в judge - Not enough money! 259.05 lv needed.

P.S. Изпращам отговора си без извикване на функцията както си му е реда. Този проблем се появява и при съвсем елементарни задачи.

Голямо БЛАГОДАРЯ! :)

 

Тагове:
0
Programming Basics with JavaScript 06/08/2020 14:56:48
mttnu avatar mttnu 82 Точки
Best Answer

Judge подава стрингове като аргументи, които трябва да преобразуваш в числа.
Твоите тестове минават, но на Judge - не, защото на 4 ред конкатенира, а не събира.
Преобразувай входните данни в числа с Number / parseInt / parseFloat, според условието на задача, и ще се реши проблемът. :) 

1
06/08/2020 15:24:42
fqlc0n3 avatar fqlc0n3 1 Точки

Още веднъж Благодаря! :)

след промяна на 4-ти ред, в следния вид:

let count = Number(puzz) + Number(dolls) + Number(bears) + Number(miners) + Number(trucks);

всичко е точно.

Може би подобен род грешки са тези, които допускам и при други задачи, които не иска да приеме.

0