Професионална програма
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