Transport price/Цена за транспорт
Здравейте,
17.*Цена за транспорт
Втора задача от междинния изпит на 6 март 2016. Тествайте решението си тук.
Студент трябва да пропътува n километра. Той има избор измежду три вида транспорт:
- Такси. Начална такса: 0.70 лв. Дневна тарифа: 0.79 лв. / км. Нощна тарифа: 0.90 лв. / км.
- Автобус. Дневна / нощна тарифа: 0.09 лв. / км. Може да се използва за разстояния минимум 20 км.
- Влак. Дневна / нощна тарифа: 0.06 лв. / км. Може да се използва за разстояния минимум 100 км.
Напишете програма, която чете броя километри n и период от деня (ден или нощ), въведени от потребителя, и изчислява цената на най-евтиния транспорт.
Вход
Програмата чете два реда(аргумента):
- Първият ред(аргумент) съдържа числото n – брой километри – цяло число в интервала [1…5000].
- Вторият ред(аргумент) съдържа дума “day” или “night” – пътуване през деня или през нощта.
Изход
Да се отпечата на конзолата най-ниската цена за посочения брой километри. Резултатът да се форматира до втория знак след десетичната запетая.
Примерен вход и изход:
Вход |
Изход |
Обяснения |
5 day |
4.65 |
Разстоянието е под 20 км à може да се ползва само такси. Началната такса е 0.70 лв. Понеже е през деня, тарифата е 0.79 лв. / км. С такси цената е: 0.70 + 5 * 0.79 = 4.65 лв. |
7 night |
7.00 |
Разстоянието е под 20 км à може да се ползва само такси. Началната такса е 0.70 лв. Понеже е през нощта, тарифата е 0.90 лв. / км. С такси цената е: 0.70 + 7 * 0.90 = 7.00 лв. |
25 day |
2.25 |
Разстоянието е над 20 км à може да се ползва автобус, но не може да се ползва влак. Автобусът е най-евтиния възможен вариант. С автобус цената е: 25 * 0.09 = 2.25 лв. |
180 night |
10.80 |
Разстоянието е над 100 км à може да се ползва влак. Влакът е най-евтиният възможен вариант за пътуване. С влак цената е: 180 * 0.06 = 10.80 лв. |
Това е моето решение но в системата ми дава 83/100. Някой има ли идеи защо? Може би подхода трябва да е друг?
function transportPrice([n, input]) {
n = Number(n);
bus = n * 0.09;
train = Math.max(n * 0.06).toFixed(2);
taxiDay = ((n * 0.79) + 0.70);
taxiNight = ((n * 0.90) + 0.70);
if(n < 20 && input == "day") {
console.log(taxiDay);
} else if(n < 20 && input == "night") {
console.log(taxiNight)
} else if(n > 20 && n < 100) {
console.log(bus);
} else {n > 100
console.log(train);
}
}
transportPrice([5, "day"]);
transportPrice([7, "night"]);
transportPrice([25, "day"]);
transportPrice([180, "night"]);
Да,
Бях я сложил понеже ми даваше отговор 10,79 вместо 10,80 но сега след като оправих кода го махнах и както се казва в една популярна напоследък песен "Всичко е точно" :-)