Професионална програма
Loading...
+ Нов въпрос
Ytrewq avatar Ytrewq 0 Точки

02. Pipes in Pool JavaScript

Здравейте, не мога да разбера къде греша, Judge връща NaN и влиза във втори случай само, във VS Code всичко си работи.

function pool ([v, x, y, N]){

let poolVol = parseInt(v);

let debit1 = parseInt(x);

let debit2 = parseInt(y);

let hours = parseFloat(N);

let palenPool = hours * debit1 + hours * debit2;

if (palenPool <= poolVol) {

let kolkoPalen = palenPool / poolVol * 100;

let kolkoDebit1 = Math.trunc(debit1 / (debit1 + debit2) * 100);

let kolkoDebit2 = Math.trunc(debit2 / (debit1 + debit2) * 100);

console.log(`The pool is ${kolkoPalen}% full. Pipe 1: ${kolkoDebit1}%. Pipe 2: ${kolkoDebit2}%.`);

} else {

let kolkoPreliva = palenPool - poolVol;

console.log(`For ${hours} hours the pool overflows with ${kolkoPreliva} liters.`);

}

}

 

Тагове:
0
Programming Basics
boykopk avatar boykopk 147 Точки

Здравей,

редактирах ти кода:

function pool([v, x, y, N]) {

    let poolVol = parseInt(v);

    let debit1 = parseInt(x);

    let debit2 = parseInt(y);

    let hours = parseFloat(N);

    let palenPool = hours * debit1 + hours * debit2;

    if (palenPool <= poolVol) {

        let kolkoPalen = Math.trunc(palenPool / poolVol * 100);

        let kolkoDebit1 = Math.trunc(hours * debit1 / palenPool * 100);

        let kolkoDebit2 = Math.trunc(hours * debit2 / palenPool * 100);

        console.log(`The pool is ${kolkoPalen}% full. Pipe 1: ${kolkoDebit1}%. Pipe 2: ${kolkoDebit2}%.`);

    } else {

        let kolkoPreliva = palenPool - poolVol;

        console.log(`For ${hours} hours the pool overflows with ${kolkoPreliva.toFixed(1)} liters.`);

    }

}

0
Ytrewq avatar Ytrewq 0 Точки

Благодаря, но продължава да връща NaN hours и NaN liters, имам някъде голяма грешка, но не мога да я открия :(.

0
boykopk avatar boykopk 147 Точки

Задаваш ли в джъдж да е на JavaScript?

0
Ytrewq avatar Ytrewq 0 Точки

да, другите ми задачи минават, само тази - не. Опитах и с решението, което е дадено към примера, пак същият резултат. Всичките ми променливи са number, какво е това NaN, не знам. 

0
BoYaN avatar BoYaN 331 Точки

Здравейте,
проблема е че входа всъщност е един стринг, който трябва да се сплитне по нов ред '\n', затова само първата стойност се парсва до число, а останалите три са NaN.
Ето как правилно да си вземете входа за JS

function pipesInPool (input) {
  let [volume, fPipe, sPipe, hours] = input[0].split('\n').map(Number)
0
AleksandarRadev avatar AleksandarRadev 2 Точки

Здравей, 

Използвах този начин да сплитна по нов ред, със следния код: 

function PipesInPool(args){
        
        let [v, p1, p2, h] = args[0].split(`\n`).map(Number);
        
        let water= (p1 + p2) * h;
        
        if (water<= v){
            console.log(`The pool is ${Math.trunc((water/ v) * 100)}% full. Pipe 1: ${Math.trunc((p1 * h / water) * 100)}%. Pipe 2: ${Math.trunc((p2 * h / water) * 100)}%.`);
        } else {
            console.log(`For ${h} hours the pool overflows with ${water- v} liters.`);
        }
    }

 

В Judge ми дава 93/100, и не виждам какъв е проблема, ако може някой да удари едно рамо :)

0