Loading...
Ivan_Pashkulev avatar Ivan_Pashkulev 20 Точки

Problem 02. Dragon Accounting (Java Fundamentals Exam - 4 October 2015)

Здравейте. Реших да се пробвам с прословутия труден изпит с Драконите. Написах решение на втора задача, което вади 50-60 точки в джъджа и не мога да разбера какво пропускам за да си изкарам и останалите. Обикновено дебъгвам авторските решения, но в случая няма такова. Варианта да ползвам тестовете за да разбера какво се случва също не е много удобен защото на тази задача входа е от стотици редове и ще отнеме цяла вечност. И така в крайна сметка реших да се допитам тук във форума. Това е кода на задачата: https://github.com/pashkulev/JavaFundamentalsExams/blob/master/Problem02_DragonAccounting.java 

P.S. Благодарение на съветите на Фил Колев, задачата е готова и вече вади 100 точки. 

Тагове:
0
Java Advanced 07/05/2016 13:30:57
Filkolev avatar Filkolev 4482 Точки
Best Answer

Не са ти много правилни сметките с BigDecimal. Виж методите за закръгляне какви опции имат. Доколкото виждам ползваш някакви събстрингове вместо правилния метод setScale().

Грешките ти са тайм лимити, което може да помислиш защо се получава при твоя подход. На практика няма тестове с гранични стойности, но ако имаше щеше да има и мемори лимити. Обработваш голям брой работници поотделно, но на практика не е нужно (и е доста бавно), просто трябва да оптимизираш малко логиката.

0
Ivan_Pashkulev avatar Ivan_Pashkulev 20 Точки

Благодаря за отговора, ще пробвам да измисля нещо.

0
Ivan_Pashkulev avatar Ivan_Pashkulev 20 Точки

Махнах операциите със Стринговете и си коригирах част от решението. В момента на всички тестове дава верни отговори, но в джъджа пак не дава 100 точки заради тайм лимити. В най-добрия случай дава 70. 

0
Filkolev avatar Filkolev 4482 Точки

Най-големият ботълнек са работниците. Смени ли логиката да ги разглеждаш по групи?

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