Loading...
Daniel.Pavlov avatar Daniel.Pavlov 6 Точки

От 1 до 100 колко тъпо е това решение? Задача: Билети за мач.

Здравейте и благодаря предварително. Въпреки, че кода дава 100/100 се чудех се как мога да го скъся този код, че ми изглежда много дълъг. Ако имате някакви идеи, ще се радвам да споделите :).

 

Задача:

Код: https://pastebin.com/c93HXFiE

Тагове:
-1
Programming Basics
dimiOrange avatar dimiOrange 63 Точки
Best Answer

Здравей,

Аз направих задачата така:

Поздрави

 

import java.util.Scanner;

public class MatchTickets {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        double budget = Double.parseDouble(console.nextLine());
        String categorySeats = console.nextLine();
        int groupOfPeople = Integer.parseInt(console.nextLine());

        double transportCost = 0;
        if (groupOfPeople <= 4) {
            transportCost = budget * 0.75;
        } else if (groupOfPeople >= 5 && groupOfPeople <= 9) {
            transportCost = budget * 0.60;
        } else if (groupOfPeople >= 10 && groupOfPeople <= 24) {
            transportCost = budget * 0.50;
        } else if (groupOfPeople >= 25 && groupOfPeople <= 49) {
            transportCost = budget * 0.40;
        } else {
            transportCost = budget * 0.25;
        }

        double gameTicketsCost = 0;
        if (categorySeats.equals("VIP")) {
            gameTicketsCost = groupOfPeople * 499.99;
        } else {
            gameTicketsCost = groupOfPeople * 249.99;
        }

        double totalCost = transportCost + gameTicketsCost;
        if (budget >= totalCost) {
            System.out.printf("Yes! You have %.2f leva left.", budget - totalCost);
        } else {
            System.out.printf("Not enough money! You need %.2f leva.", totalCost - budget);
        }
    }
}
1
Daniel.Pavlov avatar Daniel.Pavlov 6 Точки

Благодаря за това елегантно решение! Грешката ми е, че ме е страх да не объркам и се "подсигурявам" с принтиране на всеки ред.. А то само си затруднявам живота :)

0
Daniel.Pavlov avatar Daniel.Pavlov 6 Точки

Благодаря за отговора! Наистина много стеснено решение, но не разбрах някои неща от кода. Ше му дойде времето, аз съм доста начинаещ :)

0
Angel_Kalinkov avatar Angel_Kalinkov 111 Точки

В Java има два примитивни типа данни - float и double, които се използват за представянето на реални числа като числа с плаваща запетая. В този случай обаче, ако числата са с много цифри (а и не само) се стига до загуба на точност и затова, когато боравим примерно с пари или ни е нужен резултат с много знаци след десетичната запетая и с висока точност, реалните числа се представят като числа с фиксирана запетая. За съжаление в Java няма примитивен тип данни, който да е предвиден за тази цел, както например в C#, където съществува типа decimal и затова използваме класът Big Decimal. За простички задачи като тази обаче и double върши достатъчно добра работа. Сега ще ти драсна едно решение с double и ще ти стане по-ясно.

0
polikkrasteva avatar polikkrasteva 7 Точки

Ако някой може да помогне и тук

https://pastebin.com/FtNiSh3L

0
The_assassin avatar The_assassin 158 Точки

На пръв поглед, грешката която виждам е, че „обръщаш“ категорията в малки букви на входа, а след това при проверката е с главни. Пиши пак, ако има още нещо, че сега ме мързи да проверявам целия код!

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