Помощ за задача
Може ли малко помощ с тази задача:
Студент трябва да пропътува 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 |
Разстоянието е под 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.8 |
Разстоянието е над 100 км à може да се ползва влак. Влакът е най-евтиният възможен вариант за пътуване. С влак цената е: 180 * 0.06 = 10.80 лв. |
Мисля, че кода ми е вечен, но не разбирам защо програма гърми.
Моят код:
import java.util.Scanner;
/**
* Created by WinOfficially on 11/1/2016.
*/
public class p17_TransportCoast {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
double kminput = Integer.parseInt(console.nextLine());
String time = console.nextLine();
double resultday = Double.parseDouble(console.nextLine());
double resultnight = Double.parseDouble(console.nextLine());
if (kminput < 20) {
if (time.equalsIgnoreCase("day")) {
resultday = 0.70 + (0.79 * kminput);
} else if (time.equalsIgnoreCase("night")) {
resultnight = 0.70 + (0.90 * kminput);
}
} else if (kminput >= 100) {
if (time.equalsIgnoreCase("day")) {
resultday = 0.06 * kminput;
} else if (time.equalsIgnoreCase("night")) {
resultnight = 0.06 * kminput;
}
} else if (kminput >= 20) {
if (time.equalsIgnoreCase("day")) {
resultday = 0.09 * kminput;
} else if (time.equalsIgnoreCase("night")) {
resultnight = 0.09 * kminput;
}
}
if (time.equalsIgnoreCase("day")) {
System.out.println(resultday);
} else if (time.equalsIgnoreCase("night")) {
System.out.println(resultnight);
}
}
}
Да прав си много ти благодаря. Що за тъпа грешка съм направил.