Задача 3. Energy Booster
Здравейте, имам проблем с тази изпитна задача: всички отговори ми излизат 0. Защо променливата cost не приема стойностите от switch/case - конструкцията?
https://judge.softuni.org/Contests/Practice/Index/2275#4
Това е условието на задачата.
Изпит по "Основи на програмирането" - 28 и 29 март 2020
Задача 3. Енергийни гелове
Сезона за изкачване на алпийски върхове започва и всички алпинисти, се запасяват с енергийни гелове за изкачването. Фирма предлага малки и големи разфасовки с по 2 бр. и 5 бр. енергийни гела, като цената на един гел зависи от плодовете, от които е направен. В зависимост от размера на разфасовката, цената за брой енергиен гел е различна. От конзолата се четат плодовете, размерът на опаковката ((малка) 2 бр. или (голяма) 5 бр.), както и колко разфасовки са поръчани. Да се напише програма, която изчислява сумата, която трябва да се плати за поръчката.
|
Диня |
Манго |
Ананас |
Малина |
2 броя (small) |
56 лв./бр. |
36.66 лв./бр. |
42.10 лв./бр. |
20 лв./бр. |
5 броя (big) |
28.70 лв./бр. |
19.60 лв./бр. |
24.80 лв./бр. |
15.20 лв./бр. |
При поръчки:
- от 400 лв. до 1000 лв. включително има 15% отстъпка
- над 1000 лв. има 50% отстъпка
Вход
От конзолата се четат 3 реда:
- Плод - текст с възможности: "Watermelon", "Mango", "Pineapple" или "Raspberry"
- Размерът на сета - текст с възможности: "small" или "big"
- Брой на поръчаните сетове - цяло число в интервала [1 … 10000]
Изход
На конзолата се отпечатва 1 ред:
- Цената, която трябва да се заплати, форматирана до втория знак след десетичната запетая,
в следния формат:
"{цената} lv."
Примерен вход и изход
Вход |
Изход |
Обяснения |
|||
Watermelon big 4
|
487.90 lv. |
Цената на голям пакет гелове с диня е 5 * 28.70 = 143.50 лв. Цената на 4 сета: 574 лв. 400 <= 574 <= 1000 -> клиентът получава 15% отстъпка 15 % от 574 = 86.1 лв. отстъпка Крайна цена: 574 - 86.1 = 487.9 лв. |
|||
Вход |
Изход |
Вход |
Изход |
Вход |
Изход |
Pineapple small 1 |
84.20 lv. |
Raspberry small 50 |
1000.00 lv. |
Mango big 8 |
666.40 lv. |
Това е моето решение:
function energyBooster(input) {
let fruit = input[0];
let size = Number(input[1]);
let count = Number(input[2]);
let cost = 0;
switch (fruit) {
case "Watermelon":
if (size === "small") {
cost = 56 * 2;
} else if (size === "big") {
cost = 28.70 * 5;
}
break;
case "Mango":
if (size === "small") {
cost = 36.66 * 2;
} else if (size === "big") {
cost = 19.60 * 5;
}
break;
case "Pineapple":
if (size === "small") {
cost = 42.10 * 2;
} else if (size === "big") {
cost = 24.80 * 5;
}
break;
case "Raspberry":
if (size === "small") {
cost = 20 * 2;
} else if (size === "big") {
cost = 15.20 * 5;
}
break;
}
let totalPrice = cost * count;
if (totalPrice >= 400 && totalPrice <= 1000) {
totalPrice *= 0.85;
} else if (totalPrice > 1000) {
totalPrice *= 0.50;
}
console.log(`${totalPrice.toFixed(2)} lv.`);
}
energyBooster(["Watermelon", "big", "4"])
Only 20 seconds apart, :-)
Благодаря!