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

За задачата Godzila vs. Kong - js

Здравейте!

Може ли някой да ми каже къде греша, защо получавам само 60 от 100 точки? Нулевите тестове са ок.

function movie(input) {
    let budget = Number(input.shift());
    let countWalkons = Number(input.shift());
    let priceClothes = Number(input.shift());

    let priceDecor = budget * 0.10;
    let totalPriceClothes = countWalkons * priceClothes;

    if (countWalkons > 150) {
        totalPriceClothes = totalPriceClothes - totalPriceClothes * 0.10;
    }

    let neededMoney = priceDecor + totalPriceClothes;
    let result = budget - neededMoney;

    if (result < 0) {
        console.log("Not enough money!");
        console.log(`Wingard needs ${(Math.abs(result.toFixed(2)))} leva more.`);
    } else {
        console.log("Action!");
        console.log(`Wingard starts filming with ${result.toFixed(2)} leva left.`)
    }


}

 

Благодаря!

 

 

Тагове:
DeveloperEnthusiast avatar DeveloperEnthusiast 302 Точки

Здравей !

 

тази проверка

if (countWalkons > 150)

трябва да е преди това изчисление

let totalPriceClothes = countWalkons * priceClothes;

защото priceClothes може да се примени в проверката

 

https://pastebin.com/d030nZcR - тук ще видиш останалото

 

Успех smiley

0
20/02/2020 03:35:58
Lagia avatar Lagia 1 Точки

Много благодаря за отговора, но ако ги разместя, както казвате, не работи изобщо.

По моя начин, обаче с промяна в последната проверка, ми се получават 100 точки.

Просто не мога да разбера защо по първия начин с нулата логиката не работи.

Кодът със 100те точки е този:

function movie(input) {
    let budget = Number(input.shift());
    let countWalkons = Number(input.shift());
    let priceClothes = Number(input.shift());

    let priceDecor = budget * 0.10;
    let totalPriceClothes = countWalkons * priceClothes;
    

    if (countWalkons > 150) {
        totalPriceClothes = totalPriceClothes - totalPriceClothes * 0.10; 
    }

    let neededMoney = priceDecor + totalPriceClothes;
    let result = Math.abs(neededMoney - budget);

    if (neededMoney > budget) {
        console.log("Not enough money!");
        console.log(`Wingard needs ${result.toFixed(2)} leva more.`);
    } else  {
        console.log("Action!");
        console.log(`Wingard starts filming with ${result.toFixed(2)} leva left.`)
    }


}

0
DeveloperEnthusiast avatar DeveloperEnthusiast 302 Точки

Аз няма да ти дам код, който не дава 100 точки... Не ти работи изобщо, защото totalPriceClothes не може да бъде използвана преди да бъде дефинирана

    if (countWalkons > 150) {
        priceClothes -= priceClothes * 0.10;
    }

Променям ти цената на дрехите, както е по условие.

0
Lagia avatar Lagia 1 Точки

Благодаря ти за времето и помощта!

1
kstoqnov avatar kstoqnov 4 Точки

function solve(arg){

    let movieBudget = Number(arg.shift());
    let numberOfExtras = Number(arg.shift());
    let priceForOneExtras = Number(arg.shift());

    let decorAmount = movieBudget * 0.10;
    let amountForClothing = numberOfExtras * priceForOneExtras;
    let discountClothing = amountForClothing * 0.10;

    let totalMovieAmount = numberOfExtras > 150 ? decorAmount + ( amountForClothing - discountClothing ) : decorAmount + amountForClothing;

    let totalMovieBudget = totalMovieAmount > movieBudget ? totalMovieAmount - movieBudget : movieBudget - totalMovieAmount;

    if(totalMovieAmount > movieBudget){

        console.log(`Not enough money!`);
        console.log(`Wingard needs ${totalMovieBudget.toFixed(2)} leva more.`);

    }else{

        console.log(`Action!`);
        console.log(`Wingard starts filming with ${totalMovieBudget.toFixed(2)} leva left.`);

    }

}

-1