Помощ за задача
Може ли малко помощ с тази задача:
Студент трябва да пропътува 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); } } }
Да прав си много ти благодаря. Що за тъпа грешка съм направил.