Loading...
RifatCholakov avatar RifatCholakov 53 Точки

Помощ за задача

Може ли малко помощ с тази задача:

Студент трябва да пропътува 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);
        }
    }
}
Тагове:
0
Programming Basics
sktomov avatar sktomov 49 Точки
Best Answer
double resultday = Double.parseDouble(console.nextLine());
double resultnight = Double.parseDouble(console.nextLine());

Не ти се подават като вход, затова ти гърми.
Поздрави.

0
RifatCholakov avatar RifatCholakov 53 Точки

Да прав си много ти благодаря. Що за тъпа грешка съм направил.

0
RifatCholakov avatar RifatCholakov 53 Точки

Thanks . I love you dude :D

1
boykostoyanoff avatar boykostoyanoff 15 Точки
double resultday = Double.parseDouble(console.nextLine());
double resultnight = Double.parseDouble(console.nextLine());

не се чете от конзолата а трябва да започват от 0;

и си си 100/100

double resultday = 0;
double resultnight = 0;
0
RifatCholakov avatar RifatCholakov 53 Точки

Стана кода. Благодаря ти много, що за глупак съм как не съм го видял това по рано.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.