Loading...
ivan_gy6ev avatar ivan_gy6ev 3 Точки

03. Restaurant Discount

Някой има ли проблем с втория нулев тест ? При 90 човека и пакет Platinum, според теста по -подходяща е  по - малката по капацитет Terrace! 

Само за пояснение това е трета задача от C# Conditional Statements and Loops - Exercises (Practice)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _03.RestaurantDiscount
{
    class Program
    {
        static void Main(string[] args)
        {
            int groupSize = int.Parse(Console.ReadLine());
            string servicePackage = Console.ReadLine();
            double suitablePrice = 0.0d;
            double priceOfPackage = 0.0d;
            double discount = 0.0d;
            string hall = null;
            if (groupSize > 120) Console.WriteLine("We do not have an appropriate hall.");
            else
            {
                if (groupSize > 75)
                {
                    hall = "Great Hall";
                    switch (servicePackage)
                    {
                        case "Normal": discount = 0.95; priceOfPackage = 500; break;
                        case "Gold": discount = 0.9; priceOfPackage = 750; break;
                        case "Platinum": discount = 0.85; priceOfPackage = 1000; break;

                    }
                    suitablePrice = (7500 + priceOfPackage) * discount;
                }
                else if (groupSize > 50 && groupSize <= 75)
                {
                    hall = "Terrace";
                    switch (servicePackage)
                    {
                        case "Normal": discount = 0.95; priceOfPackage = 500; break;
                        case "Gold": discount = 0.9; priceOfPackage = 750; break;
                        case "Platinum": discount = 0.85; priceOfPackage = 1000; break;

                    }
                    suitablePrice = (5000 + priceOfPackage) * discount;
                }
                else if (groupSize <= 50)
                {
                    hall = "Small Hall";
                    switch (servicePackage)
                    {
                        case "Normal": discount = 0.95; priceOfPackage = 500; break;
                        case "Gold": discount = 0.9; priceOfPackage = 750; break;
                        case "Platinum": discount = 0.85; priceOfPackage = 1000; break;

                    }
                    suitablePrice = (2500 + priceOfPackage) * discount;
                }
                double pricePerPerson = Math.Round(suitablePrice / groupSize * 1.0, 2);
                Console.WriteLine("We can offer you the {0}", hall);
                Console.WriteLine("The price per person is {0}$", pricePerPerson);
            }
        }
    }
}
 

0
Programming Fundamentals 23/05/2017 23:16:55
Terziyski avatar Terziyski 54 Точки
Best Answer

Здравей, решението на задачата ти се състои във това изречение " You should print which hall is the most suitable for the group and the price per person. , което означава , че при 90 човека най-добър и изгоден вариант е "Terrace" , тъй като броят на хората е по близо до нейният-капацитет. 

Прилагам ти решението , което ми изкара 100/100 в judge - https://pastebin.com/XbbUmjWH

Успех!

 

 

0
ivan_gy6ev avatar ivan_gy6ev 3 Точки

Да не би да има разлика в капацитета на хората за Terrace, при мен в условието на задачата е зададена стойност 75, а в твоето решение е 100?

Останалото е ясно.

Благодаря все пак!!!

Явно условието е друго при мен след като смених капацитета  на 100 стана и добавих форматирането в :

Console.WriteLine("The price per person is {0:f2}$", pricePerPerson);

0
24/05/2017 01:42:38
Terziyski avatar Terziyski 54 Точки

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

Можеш да използваш  www.pastebin.com 

 

Поздрави.

0
23/05/2017 23:14:45
Pazzo avatar Pazzo 158 Точки

Здравей,

и аз се позачудих на този тест...

Реших задачата и пуснах решението в Judge, макар че 2рия нулев тест ми беше грешен - мина 100/100. Ето тук можеш да видиш решението ми. При моите сметки, на втория тест вместо Terrace и 56.67$ получавам отговор:

We can offer you the Great Hall
The price per person is 80.28$

и въпреки това задачата си минава в Judge идеално.

Според мен просто условието е сгрешено, както впрочем при Input въобще беше пропуснато, че има втори ред, който чете от конзолата вида на service package.

0
dogkami avatar dogkami 25 Точки

Наистина е сгрешено и се извиняваме за това. Числото в таблицата трябва да е 100, а не 75.

Условието е качено поправено и можете да си го изтеглите от Judge-a.

0
Pazzo avatar Pazzo 158 Точки

Здравей,

благодаря за уточнението, промених си кода - сега ми излиза втория примерен изход, в Judge няма промяна - пак 100/100 :)

Докато сме на темата - можете ли да погледнете и задача 13 - Game of numbers от същото упражнение?

Има разлика между търсеният output в условието ("Total combinations: {total number of combinations} – neither equals {magical number}") и този, който е даден в примера ({} combinations - neither equals {}).
В Judge явно е заложен втория output, и при форматиране по първия начин - както е в самото условие на задачата, гърми на 2, 3 и 4ти тест.

Благодаря и поздрави! :)

0
dogkami avatar dogkami 25 Точки

Супер и мерси много, че ги виждаш тези неща и ги казваш. 

Грешно си е дадено в секцията output и го качих оправено.

0
Rumyanarusimova avatar Rumyanarusimova 20 Точки

https://pastebin.com/Zd83vD6j

Още едно решение.

0
athristov avatar athristov 32 Точки

И моето решение с if-else конструкция и със сравнително по-късия вариант switch.

https://pastebin.com/t1KDfzu2 - if-else

https://pastebin.com/gPxCuieB - switch

0
26/05/2017 11:03:39
mirooou avatar mirooou 1 Точки

До колкото виждам в условието имаш разминаване с границите на помещенията ( Small Hall <= 50; Terrace > 50 и <= 100; Great Hall >100 и <= 120), а при теб са

else if (groupSize > 50 && groupSize <= 75) трябва да е >50 и <=100
                {
                    hall = "Terrace";

 

if (groupSize > 75) , а трябва да е >100 и <=120
                {
                    hall = "Great Hall";

 

else if (groupSize <= 50) тук е вярно
                {
                    hall = "Small Hall";

 

0
StefanMinchev93 avatar StefanMinchev93 0 Точки

Единият тест не минава 85/100; Някой,ако може да помогне и вижда грешка.Благодаря :)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _3ta_zad
{
    class Program
    {
        static void Main(string[] args)
        {
            var hora = int.Parse(Console.ReadLine());
            string package = Console.ReadLine();
            var pricesmallHall = 2500;
            var priceTerrace = 5000;
            var pricegreatHall = 10000;
            if (hora <= 50 && package == "Normal")
            {
             
                var cenasPaket = pricesmallHall + 500;
                var otstupkaCena = cenasPaket - (cenasPaket * 0.05);
                var naChovek = otstupkaCena / hora;
                Console.WriteLine("We can offer you the Small Hall");
                Console.WriteLine($"The price per person is {naChovek:f2}$");
            }
            else if (hora <= 50  && package == "Gold")
            {
                
                var cenasPaket = pricesmallHall + 750;
                var otstupkaCena = cenasPaket - (cenasPaket * 0.1);
                var naChovek = otstupkaCena / hora;
                Console.WriteLine("We can offer you the Small Hall");
                Console.WriteLine($"The price per person is {naChovek:f2}$");
            }
            else if (hora <= 50 && package == "Platinum")
            {
            
                var cenasPaket = pricesmallHall + 1000;
                var otstupkaCena = cenasPaket - (cenasPaket * 0.15);
                var naChovek = otstupkaCena / hora;
                Console.WriteLine("We can offer you the Small Hall");
                Console.WriteLine($"The price per person is {naChovek:f2}$");
            }
            else if ((hora > 50 && hora <= 100) && package == "Normal")
            {
             
                var cenasPaket = priceTerrace + 500;
                var otstupkaCena = cenasPaket - (cenasPaket * 0.05);
                var naChovek = otstupkaCena / hora;
                Console.WriteLine("We can offer you the Terrace");
                Console.WriteLine($"The price per person is {naChovek:f2}$");
            }
            else if ((hora > 50 && hora <= 100) && package == "Gold")
            {
               
                var cenasPaket = priceTerrace + 750;
                var otstupkaCena = cenasPaket - (cenasPaket * 0.1);
                var naChovek = otstupkaCena / hora;
                Console.WriteLine("We can offer you the Terrace");
                Console.WriteLine($"The price per person is {naChovek:f2}$");
            }
            else if ((hora > 50 && hora <= 100) && package == "Platinum")
            {
                
                var cenasPaket = priceTerrace + 1000;
                var otstupkaCena = cenasPaket - (cenasPaket * 0.15);
                var naChovek = otstupkaCena / hora;
                Console.WriteLine("We can offer you the Terrace");
                Console.WriteLine($"The price per person is {naChovek:f2}$");
            }
            else if ((hora > 100 && hora <= 120) && package == "Normal")
            {
                
                var cenasPaket = pricegreatHall + 500;
                var otstupkaCena = cenasPaket - (cenasPaket * 0.05);
                var naChovek = otstupkaCena / hora;
                Console.WriteLine("We can offer you the Great Hall");
                Console.WriteLine($"The price per person is {naChovek:f2}$");
            }
            else if ((hora > 100 && hora <= 120) && package == "Gold")
            {
               
                var cenasPaket = pricegreatHall + 750;
                var otstupkaCena = cenasPaket - (cenasPaket * 0.1);
                var naChovek = otstupkaCena / hora;
                Console.WriteLine("We can offer you the Great Hall");
                Console.WriteLine($"The price per person is {naChovek:f2}$");
            }
            else if ((hora > 100 && hora <= 120) && package == "Platinum")
            {
                
                var cenasPaket = pricegreatHall + 1000;
                var otstupkaCena = cenasPaket - (cenasPaket * 0.15);
                var naChovek = otstupkaCena / hora;
                Console.WriteLine("We can offer you the Great Hall");
                Console.WriteLine($"The price per person is {naChovek:f2}$");
            }
            else if (hora > 120)
            {
                Console.WriteLine("We do not have an appropriate hall.");
            }

        }
    }
}
 

0
spzvtbg avatar spzvtbg 581 Точки

цената на голямата зала мисля че е 7500

 

ето и едно от мен:

https://github.com/spzvtbg/TechModuleProgrammingFundamentals23.05.2017/blob/master/02.ConditionalStatementsAndLoopsExercises/03.%20Restaurant%20Discount/RestaurantDiscount.cs

0
minito99 avatar minito99 23 Точки

Колега(Стефчо),пишеш прекалено много излишен код и става трудно четим,погледни мойто решение и следващият път няма да е нужно да пишеш толква много излишен код,нядявам се да съм бил полезен :)

Успех!

0
01/06/2017 01:23:10
pavsavov avatar pavsavov 18 Точки

Това е моето решениена задачата. Ползвал съм само if-else. Не разбирам защо ми дава 85/100 в Judge. Малко дълъг се получи кода и е ясно,че може да се промени,но като цяло искам да разбера какво точно не му е наред?

 

Всякакви идеи ще са от полза.

 

https://pastebin.com/tJ6P1vdr

0
Pazzo avatar Pazzo 158 Точки

Имаше грешка на:

else if (50 < groupSize && groupSize <= 100)
else if (package.Equals("Gold"))
var pricePerPerson = (3750 - ((5000 + 750) * 0.10)) / groupSize;

трябва да е 5750, а не 3750. Поправи го и минава 100 / 100.

0
pavsavov avatar pavsavov 18 Точки

Много ти благодаря. въпреки многократните ми опити,точно това ми е отбягване. Иначе цялостната ми грешка,бе,  че не си направих повече променливи,а не да си играят с тези числа.

 

0
Pazzo avatar Pazzo 158 Точки

Еми да, има и доста по-... компактни, да кажем, начини да се реши тая задача, но ти писа, че искаш да разбереш конкретно защо твоя вариант гърми.

Иначе - разгледай форума, доста решения има. Ако искаш погледни и моето решение.

Поздрави

0
minito99 avatar minito99 23 Точки

Заповяйдате оптимално,крактко и лесно четливо решение,което работи 100/100 : https://pastebin.com/yQ12K11n .

Успех на всички! :)

0
01/06/2017 01:17:09
Radul avatar Radul 8 Точки

Някой помощ, че ми изкарва 71/100 точки в judge, а не мога си намеря грешката от  доста време.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _3.Problem
{
    class Program
    {      
        static void Main()
        {
            int group = int.Parse(Console.ReadLine());
            string typeOfPackage = Console.ReadLine();
            string hall = null;
            if (group <= 50)
            {
                hall = "Small Hall";
                if (typeOfPackage == "Normal")
                {
                    double price = 2700.0 / group;
                    Console.WriteLine("We can offer you the {0:f2}",hall);
                    Console.WriteLine("The price per person is {0:f2}$", price);
                }
                else if (typeOfPackage == "Gold")
                {
                    double price = 2925.0 / group;
                    Console.WriteLine("We can offer you the {0:f2}", hall);
                    Console.WriteLine("The price per person is {0:f2}$", price);
                }
                else if (typeOfPackage == "Platinum")
                {       double price = 3150.0 / group;
                    Console.WriteLine("We can offer you the {0:f2}", hall);
                    Console.WriteLine("The price per person is {0:f2}$", price);
                }

            }
            else if (group > 50 & group <= 100)
            {
                hall = "Terrace";
                if (typeOfPackage == "Normal")
                {
                    double price = 5275.0 / group;
                    Console.WriteLine("We can offer you the {0:f2}", hall);
                    Console.WriteLine("The price per person is {0:f2}$", price);
                }
                else if (typeOfPackage == "Gold")
                {
                    double price = 5175.0 / group;
                    Console.WriteLine("We can offer you the {0:f2}", hall);
                    Console.WriteLine("The price per person is {0:f2}$", price);
                }
                else if (typeOfPackage == "Platinum")
                {
                    double price = 5100.0 / group;
                    Console.WriteLine("We can offer you the {0:f2}", hall);
                    Console.WriteLine("The price per person is {0:f2}$", price);
                }

            }
            else if (group > 100 & group <= 120)
            {
                hall = "Great Hall";
                if (typeOfPackage == "Normal")
                {
                    double price = 7600.0 / group;
                    Console.WriteLine("We can offer you the {0:f2}", hall);
                    Console.WriteLine("The price per person is {0:f2}$", price);
                }
                else if (typeOfPackage == "Gold")
                {
                    double price = 7425.0 / group;
                    Console.WriteLine("We can offer you the {0:f2}", hall);
                    Console.WriteLine("The price per person is {0:f2}$", price);
                }
                else if (typeOfPackage == "Platinum")
                {
                    double price = 7225.0 / group;
                    Console.WriteLine("We can offer you the {0:f2}", hall);
                    Console.WriteLine("The price per person is {0:f2}$", price);
                }
            }
            else if (group > 120 || group <=0)
            {
                Console.WriteLine("We do not have an appropriate hall.");

            }
        }
    }
}
 

0
sis44o avatar sis44o 5 Точки

Здравейте! :)
И аз се затруднявам на тази задача. В judge ми дава 71/100.

Ако може някой да ми посочи къде греша ще съм му много благодарна.

Ето го моя код:
https://pastebin.com/TYyYixMF

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

0
pwnd0rum avatar pwnd0rum 35 Точки

Променливата ти priceHall трябва да е double, за да може да получиш цени, които не са цяло число.

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