Цена за транспорт
Моля да ми кажете къде ми е грешката, дава ми в джъдж 83%, като 3 и 4 проверка са грешни. Не знам кои са тези провекри, но всичко въведено си излиза както трябва да е на изхода.Та задачата е:
Студент трябва да пропътува 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 лв.
Решението ми е:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); double n = Double.parseDouble(scanner.nextLine()); String daytime = scanner.nextLine(); double sum =0.0; if (n<=20 && daytime.equals("day")) { sum = 0.70 + 0.79 * n; } else if (n<=20 && daytime.equals("night")) { sum = 0.70 +0.90 * n; } if (n > 20 && n <100) { sum = n * 0.09; } else if (n >=100) { sum = n * 0.06; } System.out.printf("%.2f",sum); } }
Здравей,
вместо да слагаш два if-а, може да използваш един с две условия в него, с &&. Може и твоето да стане, пробвай в judge, но малко си удължаваш кода(съвсем малко).Иначе грешката ми беше,че на таксито съм сложил =, а не на автобуса