Loading...
abelkov avatar abelkov 2 Точки

Грешки в заданния и Judge за Programming Basics Online Exam - 10 and 11 March 2018

Здравейте,

 

Решавам задачите от въпросния изпит и открих няколко грешки в заданията на задачите, както и в тестове на judge системата.

Ще започна със задача, за която ми дава грешка, но тук, тъй като не е в нулев тест, не мога да видя точно къде се корени проблема:

Hearthstone

function hearthStone([time, priceCards, priceQuest, priceCoffee]){
    time = Number(time);
    priceCards = Number(priceCards);
    priceQuest = Number(priceQuest);
    priceCoffee = Number(priceCoffee);

    let totalSum = (3 * priceCards) + priceCoffee + (2 * priceQuest);
    let realRestTime = time - 15;

    console.log(totalSum.toFixed(2));
    console.log(realRestTime);
    
}

Това е решението ми. Ако някой вижда  грешка, моля да сподели.

Следващата е "Picture in the wall" и при нея е зададено като условие да изписва в единия случай:

  • "The pictures don't fit in the hole. {разликата между площта на картините и размера на дупката} bigger than the hole area.

Да, но в judge е зададено да е без "the" и задачата гърми.

 

Последната проблемна задача (за момента) е Arena Tournament. Решението ми е по-долу, а проблемът е, че в judge (хванах го, защото и в нулев тест е зададено грешно) при втория нулев тест ( а може и при други) последният параметър е undefined вместо legendary. Когато аз тествам в Visual Studio, ми излиза желания изход.

function arenaTournament([totalPoints, arenaName, weekDay, itemsCondition]){
    totalPoints = Number(totalPoints);
    let discount = 0;
    let totalPrice;
    if ((weekDay === "Monday" || weekDay === "Wednesday") && arenaName === "Nagrand"){
        discount = 0.05;
    } else if ((weekDay === "Tuesday" || weekDay === "Thursday") && arenaName ==="Gurubashi"){
        discount = 0.1;
    } else if ((weekDay === "Friday" || weekDay === "Saturday") && arenaName ==="Dire Maul"){
        discount = 0.07;
    }
    if (itemsCondition === "Poor"){
        totalPrice = 7000;
    } else if (itemsCondition === "Normal"){
        totalPrice = 14000;
    } else if (itemsCondition === "Legendary"){
        totalPrice = 21000;
    }
    let oneIetmPrice = (totalPrice / 5) - (totalPrice / 5) * discount;
    let itemBought = Math.floor(totalPoints / oneIetmPrice);
    if (itemBought > 5){
        itemBought = 5;
    }
    let leftPoints = totalPoints - itemBought * oneIetmPrice;

    console.log("Items bought: " + itemBought);
    console.log("Arena points left: " + leftPoints);

    if (itemBought < 5){
        console.log("Failure!");
    } else {
        console.log("Success!");
    }
}

 

Моля проверете.

 

Ще очаквам обратна  връзка.

 

Благодаря предварително.

Тагове:
0
Module: JS Advanced 09/04/2018 16:15:21
abelkov avatar abelkov 2 Точки

Моля да погледнете и по-долната задача CSGO, защото не виждам къде може да е объркано - за нея също не съм сигурен дали проблема е в  judge, защото нулевите тестове са ок.

 

function csgo(input){
    let money = Number(input[1]);
    let itemsCount = Number(input[0]);
    
    if (itemsCount  > 7){
        console.log("Sorry, you can't carry so many things!");
        return;
    }
    for (let i = 2; i < itemsCount + 2; i++ ){
        let weapon  =  input[i];
        let weaponPrice  =  0;

        if (weapon === 'ak47') {
            weaponPrice = 2700;
        } else if (weapon === 'awp') {
            weaponPrice = 4750;
        } else if (weapon === 'sg553') {
            weaponPrice = 3500;
        } else if (weapon === 'grenade') {
            weaponPrice = 300;
        } else if (weapon === 'flash') {
            weaponPrice = 250;
        } else if (weapon === 'glock') {
            weaponPrice = 500;
        } else if (weapon === 'bazooka') {
            weaponPrice = 5600;
        }
        money -= weaponPrice;   
    }
    if (money >= 0){
        console.log(`You bought all ${itemsCount} items! Get to work and defeat the bomb!`);
    } else {
        console.log(`Not enough money! You need ${Math.abs(money)} more money.`)
    }
}

 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.