Грешки в заданния и 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!");
}
}
Моля проверете.
Ще очаквам обратна връзка.
Благодаря предварително.