Loading...
s.boyadjiev avatar s.boyadjiev 9 Точки

Dance Hall

Здравейте,
първоначално направих всички изчисления в метри, включително и крайния резултат (в условието не е упоменато, че трябва да е в см), като резултатът беше + безкрайност. Написах формулата да е в см и всичко беше наред.

Питането ми е на какво се дължи разликата в изхода, при положение, че ползвам една и съща формула? Единственото, което идва в beginer-ската ми глава е, че броят на символите не се побира в double...?

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

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

            int number = int.MaxValue;

            Console.WriteLine(number);  // Outputs " 2147483647"

            number += 1;

            Console.WriteLine(number);  // Outputs "-2147483648"

В първия момент променливата number има максималната стойност за типа int. След това увеличаваме тази стойност с едно (number += 1) получения резултат е минималната стойност за int (-2147483648). Тоест в твоята ситуация нама как да имаш препълване.

Безкрайност може да получиш когато се опитваш да делеиш на 0. Примерно:

            double zero = 0;

            double positive = 1 / zero;
            Console.WriteLine(positive);    // Outputs "+Infinity"

            double negative = -1 / zero;
            Console.WriteLine(negative);    // Outputs "-Infinity"

Ако все още не намираш защо гърми, качи кода и ще го погледна. Качвам и моето решение за спварка. 

using System;

namespace DanceHall
{
    class DanceHall
    {
        static void Main()
        {
            double lengthHall = double.Parse(Console.ReadLine());
            double widthHall = double.Parse(Console.ReadLine());
            double sideWardrobe = double.Parse(Console.ReadLine());

            double fullArea = (lengthHall * 100) * (widthHall * 100);
            double spearArea = fullArea - ((sideWardrobe * 100) * (sideWardrobe * 100)) - (fullArea / 10);

            Console.WriteLine(Math.Floor(spearArea / (7000 + 40)));
        }
    }
}

Поздравй, 
Боби :)

0
11/06/2019 12:40:07
s.boyadjiev avatar s.boyadjiev 9 Точки

Много благодаря за изчерпателния отговор. Всичко е наред вече!

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