Loading...
radina.arsova avatar radina.arsova 95 Точки

[Exercises] - Programming Fundamentals - Conditional Statements and Loops - Problem{4} - Hotel

Добър ден,

Доста мислих по тази задача и първите ми тестове са верни, но ми дава 77 точки в judge. Може ли някой да ме насочи към грешката ми?

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

Условие: https://judge.softuni.bg/Contests/Practice/Index/579#0

Решение: https://pastebin.com/15wHVajw

Тагове:
1
Programming Fundamentals 22/09/2017 11:14:25
k.sevov avatar k.sevov 1077 Точки
Best Answer

Проблемът е в това, че първо пресмяташ цената след отстъпката и след това вадиш стандартната цена за една вечер от нея (а не намалената). Най-лесно е да си размениш местата на проверките - първо вадиш цената за една нощувка и накрая отстъпките.

1
Stoyan66 avatar Stoyan66 0 Точки

А, може ли да ми кажете къде в моето решение идва грешката - https://pastebin.com/rac4T3cS 

0
k.sevov avatar k.sevov 1077 Точки

Две места имат нужда от оправяне -> 28 и 29-ти ред трябва да са извън else-а, за да могат да се принтират и когато нощувките са повече от 7, а също така 87-ми до 91-ви ред трябва да са вътре в else-a, тъй като иначе последния ред ти се принтира винаги и за другите стават по четири реда output. Поправен вариант -> https://pastebin.com/g5sbdLTA. Като цяло е страшно дълъг и объркан кода и е добре да разгледаш другите по-прегледни решения, тъй като така е твърде сложно да си откриваш грешки. 

0
quester avatar quester 3 Точки

Здравейте,

Същата задача, но на Java, в  джъдж ми дава 88/100, като ми гърми на Тест №6. Ще съм благодарен ако някой успее да ми каже къде греша.

https://pastebin.com/0nGeE1w9 

 

0
23/09/2017 14:20:04
k.sevov avatar k.sevov 1077 Точки

Предполагам, че проблемът е в 47 ред - трябва да проверим и дали нощувките са повече от 7, за да се даде отстъпка от една вечер. 

0
quester avatar quester 3 Точки

Прав си!

Коригирах условието на if-a на: 

((month.equals("September") || month.equals("October")) && nightsCount > 7)

Благодаря на всички включили се!

0
LepTon avatar LepTon 6 Точки

Изпращам решение, получило 100 точки.

using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static void Main()
    {
        string month = Console.ReadLine();
        int numNights = int.Parse(Console.ReadLine());
        double priceStudio = 0.0;
        double priceDouble = 0.0;
        double priceSuite = 0.0;
        if (month == "May" || month == "October")
        {
            priceStudio = 50.00;
            priceDouble = 65.00;
            priceSuite = 75.00;
            if (numNights > 7)
            {
                priceStudio = 50.00 * 0.95;
            }
        }
        else if (month == "June" || month == "September")
        {
            priceStudio = 60.00;
            priceDouble = 72.00;
            priceSuite = 82.00;
            if (numNights > 14)
            {
                priceDouble = 72.00 * 0.9;
            }
        }
        else if (month == "July" || month == "August" || month == "December")
        {
            priceStudio = 68.00;
            priceDouble = 77.00;
            priceSuite = 89.00;
            if (numNights > 14)
            {
                priceSuite = 89.00 * 0.85;
            }
        }
        double totalPriceStudio = priceStudio * numNights;
        double totalPriceDouble = priceDouble * numNights;
        double totalPriceSuite = priceSuite * numNights;

        if ((month == "September" || month == "October") && numNights > 7)
        {
            totalPriceStudio = priceStudio * (numNights - 1);
        }
        Console.WriteLine("Studio: {0:f2} lv.", totalPriceStudio);
        Console.WriteLine("Double: {0:f2} lv.", totalPriceDouble);
        Console.WriteLine("Suite: {0:f2} lv.", totalPriceSuite);
    }
}

0
DianaPacheva99 avatar DianaPacheva99 6 Точки

Това е моето решение на C# малко е дълго, но работи. Мисля че грешиш при месец Октомври.

https://pastebin.com/gG0ZPR3C

 

0
musakahero avatar musakahero 3 Точки

Ето и малко по-къс вариант (с използване на switch-case конструкция).

https://pastebin.com/ekqs5e9g

0
pwnd0rum avatar pwnd0rum 35 Точки

Ето и още едно решение със switch-case, при което всички условия са във switch-case тялото:

https://pastebin.com/nNeSAG7Q

0
Radostta avatar Radostta 6 Точки

За да не се бъркаш коя цена на нощувка трябва да вадиш при една нощувка по-малко (стандартната или с отстъпката) може да хванеш тази логика: първо изчисли цените на нощувка, след което умножавай цената на нощувка по броя нощувки. Преди да умножиш, в специалните случаи, извади една нощувка от броя нощувки (вместо да вадиш цената на една нощувка от крайната цена).

Ето моето решение.

0
25/09/2017 09:09:33
chesten5139 avatar chesten5139 3 Точки

Здравей,

тук публикувах моето решение.

 

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