Loading...
inaivanova1990 avatar inaivanova1990 33 Точки

Задача 4. Renovation Programming Basics Online Exam - 6 and 7 July 2019

В judge това решение ми дава 75 точки: https://pastebin.com/j2RnqmW0. Не си разбирам грешката, някой ако може да ми обясни.

Това е условието:

Задача 4. Ремонт

Пешо решава, че иска да направи ремонт вкъщи. Неговата задача е да боядиса стените в хола, като знаете височината и ширината на една стена. Холът на Пешо има 4 стени с еднакви размери, определен процент от които се заемат от прозорци и врати, които няма да бъдат боядисвани. Той не е сигурен дали ще успее наведнъж, затова моли Вас да му помогнете да изчисли дали ще му остава още работа за следващия ден и, ако да, колко кв. м. има да довърши, а в случай, че успее да боядиса хола, колко боя му е останала (трябва да се има предвид, че с един литър боя се боядисва един квадратен метър от стената).

Вход

От конзолата се четат следните редове:

  1. Височина на стената - цяло число [0… 100]
  2. Ширина на стената - цяло число [0… 100]
  3. Процент от общата площ на стените, който няма да бъде боядисан - цяло число [5… 95]
    На следващите редове до получаване на командата "Tired!" или докато не бъдат боядисани всички стени, се чете по едно число:
  • Литри боя – цяло число [0…100]:

Забележка: Площта за боядисване да бъде закръглена нагоре до най-близкото цяло число.

Изход

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

  • При получаване на командата "Tired!":
  • quadratic m left."
    {квадратни метри} е повърхнината, която му остава да боядисана.
  • Aко е останала боя в излишък:
  • All walls are painted and you have {литри боя} l

paint left!"

  • Ако след боядисването на всички стени не е останала боя:
  • All walls are painted! Great job, Pesho!"
Тагове:
0
Programming Basics 31/07/2020 01:31:06
willystyle avatar willystyle 2472 Точки
Best Answer

let totalDyeSurface = Math.ceil(height * width * 4 * (100 - percentNotDyed) / 100);

0
willystyle avatar willystyle 2472 Точки

За да не се чудиш, защо се получава така, може да прочетеш как се представят числата в JS (double-precision 64-bit binary format IEEE 754 ), което btw се полва и в почти всички други езици (C#, Java, ...).
Пробвай в конзолата:

console.log(1 - 70/100)   (не е точно 0.3)

console.log(1 - 85/100)  (не е точно 0.15)

console.log(1 - 90/100) (не е точно 0.1)

...
и от проблема със закръглянето става белята, затова с floating point numbers се работи много внимателно.

0
inaivanova1990 avatar inaivanova1990 33 Точки

Много благодаря

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