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

Задача от изпит - рожден ден

Здравейте,

упражнявам се със задача от изпит Programming Basics. Задачата е "рожден ден"

Условието:

https://judge.softuni.bg/Contests/Practice/DownloadResource/2413

https://judge.softuni.bg/Contests/Practice/DownloadResource/2425

Получавам отговорите от примера, но judge ми дава 80/100 точки, като ми дава грешки в тест #4 и тест #6.

Ето го и решението ми:

            double Lenght = double.Parse(Console.ReadLine());
            double Width = double.Parse(Console.ReadLine());
            double Height = double.Parse(Console.ReadLine());
            double Percentage = double.Parse(Console.ReadLine());

            double VolumeCM3 = Lenght * Width * Height;
            double VolumeLitre = VolumeCM3 * 0.001;

            double UsableVolume = VolumeLitre - (Percentage / 100) * VolumeLitre;

            Console.WriteLine(Math.Round(UsableVolume,3));

https://pastebin.com/rEXSG2hP

 

Някой може ли да помогне, къде бъркам, за да не получа пълните точки?

Тагове:
0
Programming Basics
VasilValchanov avatar VasilValchanov 555 Точки

В задачата се иска изхода да е форматиран до 3-тия знак а ти в случая го закръгляш до 3-тия.

Пробвай така --> Console.WriteLine($"{UsableVolume:f3}");

0
tsonev87 avatar tsonev87 3 Точки

Благодаря, проработи.

Не знаех, че има разлика между форматиране и закръгляне :D

0
tsonev87 avatar tsonev87 3 Точки

https://judge.softuni.bg/Contests/Submissions/View/5236036

0
RujenaDimitrova avatar RujenaDimitrova 18 Точки

Четеш ли от електронния учебник по Основи на програмирането C#? :)) Там ще прочетеш, че има различни методи на форматиране и закръгляне след десетичната запетая и много други полезни неща.

Console.WriteLine("{0:f3}", usableVolume);

 

0
MarinParov avatar MarinParov 5 Точки

Здравейте, 

Много полезен ми беше този разговор във форума, защото бях пред същата дилема. Как да форматирам с Math.Round. 
Разбрах, каква е разликата с форматирането и сега искам да запитам 

 

Console.WriteLine(Math.Round(UsableVolume,3)); - закръгля до 3тия знак след десетичната запетая.

Console.WriteLine("{0:f3}",UsableVolume); -  Форматира отговора в конзолата. Т.е. Ралния резултат остава  248.68875?



При входове:

85 - AquariumLenght

75 - AquariumWidth

47 - AquariumHeight

17 - percent. 

ИЗХОДИ.
248.68875 литри Краен резултат без форматиране

248.689 - краен резултат форматиран до 3 тия знак. (има закръгляне )

По-долу предлагам мой вариант на задачата. Но с употреба на Math.Pow(var, -3) с идеята да направим операцията. 
299625cm3 * 0.001=299.625 --> 299625 * 1/10^(-3) --> Math.Pow(299625, -3)

Пускам сорс кода 

// Май стана SOS КОД

    class Program
    {
        static void Main(string[] args)
        {
            double aquariumLenght = double.Parse(Console.ReadLine());
            double aquariumWidth = double.Parse(Console.ReadLine());
            double aquariumHeight = double.Parse(Console.ReadLine());
            double percent = double.Parse(Console.ReadLine());

            Double AquariumCapacity = aquariumLenght + aquariumWidth + aquariumHeight;
            Console.WriteLine(AquariumCapacity + "Cm3");
            double CapacityLitres = Math.Pow( AquariumCapacity,-3); - тука ми гърми!!!
            Console.WriteLine($"{CapacityLitres:f3}");
            
0
22/01/2019 21:15:15
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.