Loading...
Nicksan avatar Nicksan 1 Точки

Проблем със задача 9-Хотелска стая от Упражнението за вложени условни конструкции

Здравейте, Колеги.

Голямо въртене и чудене настана, но не мога да разбера защо Judge ми дава 70/100 точки, при условие, че примерните входове минават без проблем...

Няма да откажа малко помощ - ето и кода: https://pastebin.com/Wti9kgz7.

Благодаря предварително.

Тагове:
0
Programming Basics with Java
Bobo_bobkata avatar Bobo_bobkata 48 Точки
Best Answer

Здравей колега, кода би бил по-добре структуриран и четлив ако първо сравняваш месеците  по име и вътре  сложиш вложена иф конструкция която да определя цената за студиото и апартамента в зависимост от броя нощувките и съответното намаление. Така ще можеш определиш цената, която после умножаваш по дните престой и накрая я  принтираш закръглена до 2рия знак.

Ето и линк към решението: https://pastebin.com/hnA63K6T

0
Nicksan avatar Nicksan 1 Точки

Благодаря.

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

:)

0
AlexMarinov87 avatar AlexMarinov87 15 Точки

ето го решението ми на въпросната задача:

function hotelRoom(input) {
    let month = input.shift();
    let nights = Number(input.shift());
    let apartmentPrice;
    let studioPrice;


    if (month == "May" || month == "October") {
        if (nights > 7 && nights <= 14) {
            apartmentPrice = nights * 65;
            studioPrice = nights * 50 - ((nights * 50) * 0.05);
        } else if (nights > 14) {
            apartmentPrice = nights * 65 - ((nights * 65) * 0.10);
            studioPrice = nights * 50 - ((nights * 50) * 0.30);
        } else {
            apartmentPrice = nights * 65;
            studioPrice = nights * 50;
        }
    } else if (month == "June" || month == "September") {
        if (nights > 14) {
            apartmentPrice = nights * 68.70 - ((nights * 68.70) * 0.10);
            studioPrice = nights * 75.20 - ((nights * 75.20) * 0.20);
        } else {
            apartmentPrice = nights * 68.70;
            studioPrice = nights * 75.20;
        }
    } else {
        if (nights > 14) {
            apartmentPrice = nights * 77 - ((nights * 77) * 0.10);
            studioPrice = nights * 76;
        } else {
            apartmentPrice = nights * 77
            studioPrice = nights * 76;
        }
    }
    console.log(`Apartment: ${apartmentPrice.toFixed(2)} lv.`);
    console.log(`Studio: ${studioPrice.toFixed(2)} lv.`)
}

0
Stoyan.Ivanov.87 avatar Stoyan.Ivanov.87 20 Точки

Благодаря за споделянето :)

1
Tsveten.kavrakov avatar Tsveten.kavrakov 8 Точки

Още едно решение със SWITCH:

https://pastebin.com/Pg11jE2q

0
yovkovbpfps avatar yovkovbpfps 8 Точки

package NestedConditionalStatements;
 
import java.util.Scanner;
 
public class HotelRoom {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
 
        String month = scanner.nextLine();
        int nights = Integer.parseInt(scanner.nextLine());
      
        double priceApartment = 0;
        double priceStudio = 0;
 
        if (month.equals("May") || month.equals("October")) {
            if (nights > 7 && nights <= 14) {
                priceStudio = 50 - 0.05 * 50;
                priceApartment = 65;
            } else if (nights > 14) {
                priceStudio = 50 - 0.3 * 50;
                priceApartment = 65 - 0.1 * 65;
            } else {
                priceStudio = 50;
                priceApartment = 65;
            }
        } else if (month.equals("June") || month.equals("September")) {
            if (nights > 14) {
                priceStudio = 75.20 - 0.20 * 75.20;
                priceApartment = 68.70 - 0.1 * 68.70;
            } else {
                priceStudio = 75.20;
                priceApartment = 68.70;
            }
 
 
        } else if (month.equals("July") || month.equals("August")) {
            if (nights > 14) {
                priceApartment = 77 - 0.1 * 77;
            } else {
 
                priceApartment = 77;
            }
            priceStudio = 76;
        }
 
        double totalPriceForStudio = nights * priceStudio;
        double totalPriceForApartment = nights * priceApartment;
 
        System.out.printf("Apartment: %.2f lv.%n", totalPriceForApartment);
        System.out.printf("Studio: %.2f lv.", totalPriceForStudio);
 
 
    }
}

0
mark79 avatar mark79 639 Точки

Здравей,

струва ми се много объркващо с толкова много условия и проверки.

Ето как може да се избегне всичко това : https://pastebin.com/RpCKwrPj

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