Loading...
ivanova3579 avatar ivanova3579 0 Точки

Conditional Statements Advanced Lab - Ski trip - PB C#

using System;

namespace Ski_trip
{
    class Program
    {
        static void Main(string[] args)
        {
            int day_stay = int.Parse(Console.ReadLine());
            string type_room = Console.ReadLine();
            string assessment = Console.ReadLine();
            day_stay = day_stay - 1;
            switch (type_room)
            {
                case "room for one person":
                    {
                        if (day_stay < 0 || day_stay > 365) Console.WriteLine($"{0:F2}");
                        if (day_stay >= 1 && day_stay <= 365)
                        {
                            if (assessment == "positive") Console.WriteLine($"{day_stay * 18 * 1.25:F2}");
                            if (assessment == "negative") Console.WriteLine($"{day_stay * 18 * .9:F2}");
                        }
                    }
                    break;
                case "apartment":
                    {
                        if (day_stay < 0 || day_stay > 365) Console.WriteLine($"{0:F2}");
                        if (day_stay >= 1 && day_stay < 10)
                        {
                            if (assessment == "positive") Console.WriteLine($"{day_stay * 25 * .7 * 1.25:F2}");
                            if (assessment == "negative") Console.WriteLine($"{day_stay * 25 * .7 * .9:F2}");
                        }
                        if (day_stay >= 10 && day_stay <= 15)
                        {
                            if (assessment == "positive") Console.WriteLine($"{day_stay * 25 * .65 * 1.25:F2}");
                            if (assessment == "negative") Console.WriteLine($"{day_stay * 25 * .65 * .9:F2}");
                        }
                        if (day_stay > 15 && day_stay <= 365)
                        {
                            if (assessment == "positive") Console.WriteLine($"{day_stay * 25 * .5 * 1.25:F2}");
                            if (assessment == "negative") Console.WriteLine($"{day_stay * 25 * .5 * .9:F2}");
                        }
                    }
                    break;
                case "president apartment":
                    {
                        if (day_stay < 0 || day_stay > 365) Console.WriteLine($"{0:F2}");
                        if (day_stay >= 1 && day_stay < 10)
                        {
                            if (assessment == "positive") Console.WriteLine($"{day_stay * 35 * .9 * 1.25:F2}");
                            if (assessment == "negative") Console.WriteLine($"{day_stay * 35 * .9 * .9:F2}");
                        }
                        if (day_stay >= 10 && day_stay <= 15)
                        {
                            if (assessment == "positive") Console.WriteLine($"{day_stay * 35 * .85 * 1.25:F2}");
                            if (assessment == "negative") Console.WriteLine($"{day_stay * 35 * .85 * .9:F2}");
                        }
                        if (day_stay > 15 && day_stay <= 365)
                        {
                            if (assessment == "positive") Console.WriteLine($"{day_stay * 35 * .8 * 1.25:F2}");
                            if (assessment == "negative") Console.WriteLine($"{day_stay * 35 * .8 * .9:F2}");
                        }
                    }
                    break;
            }

        }
    }
}

Моля, за помощ 90/100 в judge.
 

13. Ски почивка

Атанас решава да прекара отпуската си в Банско и да кара ски. Преди да отиде обаче, трябва да резервира хотел и да изчисли колко ще му струва престоя. Съществуват следните видове помещения, със следните цени за престой:

  • "room for one person" – 18.00 лв за нощувка
  • "apartment" – 25.00 лв за нощувка
  • "president apartment" – 35.00 лв за нощувка

Според броят на дните, в които ще остане в хотела (пример: 11 дни = 10 нощувки) и видът на помещението, което ще избере, той може да ползва различно намаление. Намаленията са както следва:

вид помещение

по-малко от 10 дни

между 10 и 15 дни

повече от 15 дни

room for one person

не ползва намаление

не ползва намаление

не ползва намаление

apartment

30% от крайната цена

35% от крайната цена

50% от крайната цена

president apartment

10% от крайната цена

15% от крайната цена

20% от крайната цена

След престоя, оценката на Атанас за услугите на хотела може да е позитивна (positive) или негативна (negative) . Ако оценката му е позитивна, към цената с вече приспаднатото намаление Атанас добавя 25% от нея. Ако оценката му е негативна приспада от цената 10%.

Вход

Входът се чете от конзолата и се състои от три реда:

  • Първи ред - дни за престой - цяло число в интервала [0...365]
  • Втори ред - вид помещение - "room for one person", "apartment" или "president apartment"
  • Трети ред - оценка - "positive"  или "negative"

Изход

На конзолата трябва да се отпечата един ред:

  • Цената за престоят му в хотела, форматирана до втория знак след десетичната запетая.

Примерен вход и изход

Вход

Изход

Обяснения

14

apartment

positive

264.06

14 дни => 13 нощувки => 13 * 25.00 = 325 лв.

10 < 13 дни < 15 => 325 – 35%= 211.25 лв.

Оценката е positive => 211.25 + 25% = 264.0625 -> 264.06 лв.

Вход

Изход

Вход

Изход

Вход

Изход

30

president apartment

negative

730.80

12

room for one person

positive

247.50

2

apartment

positive

21.88

https://judge.softuni.bg/Contests/Compete/Index/2377#12

Тагове:
0
Programming Basics with C#
AlexKadiyski avatar AlexKadiyski 16 Точки

Ето още едно решение:

 

using System;

namespace _13._Ski_Trip
{
    class Program
    {
        static void Main(string[] args)
        {
            int days = int.Parse(Console.ReadLine());
            string roomType = Console.ReadLine();
            string opinion = Console.ReadLine();           

            int nights = days - 1;
            double priceNights = 0;

            if (roomType == "room for one person")
            {
                priceNights = 18;
            }

            double totalPrice = nights * priceNights;

            if (roomType == "apartment")
            {
                priceNights = 25;
                totalPrice = nights * priceNights;
                if (days < 10)
                {
                    totalPrice = totalPrice - 0.30 * totalPrice;
                }
                else if ((days >= 10) && (days <= 15))
                {
                    totalPrice = totalPrice - 0.35 * totalPrice;
                }
                else if (days > 15)
                {
                    totalPrice = totalPrice - 0.50 * totalPrice;
                }

            }
            else if (roomType == "president apartment")
            {
                priceNights = 35;
                totalPrice = nights * priceNights;
                if (days < 10)
                {
                    totalPrice = totalPrice - 0.10 * totalPrice; 
                }
                else if ((days >= 10) && (days <= 15))
                {
                    totalPrice = totalPrice - 0.15 * totalPrice; 
                }
                else if (days > 15)
                {
                    totalPrice = totalPrice - 0.20 * totalPrice; 
                }
            }
            if (opinion == "positive")
            {
                totalPrice = totalPrice + 0.25 * totalPrice;
            }
            else if (opinion == "negative")
            {
                totalPrice = totalPrice - 0.10 * totalPrice;
            }

            Console.WriteLine($"{totalPrice:F2}");
        }
    }
}

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